Notifiche push Easy iOS con back4app

introduzione

In questo tutorial, ti mostrerò come implementare facilmente le notifiche push nella tua app iOS utilizzando un servizio di back-end di terze parti basato su cloud. Inizieremo osservando i passaggi necessari per qualsiasi app iOS per implementare le notifiche push e quindi utilizzare back4app (basato sulla piattaforma Parse) come servizio di back-end.

Questo tutorial richiede che tu stia utilizzando almeno Xcode 8 con iOS 10 SDK. Questo perché utilizzeremo il nuovo framework UserNotifications per gestire le notifiche di ricezione nell'app. Se vuoi saperne di più su questo quadro, puoi consultare il mio tutorial coprendolo qui:

  • Introduzione al framework UserNotifications

    In questo tutorial, imparerai a conoscere il nuovo framework UserNotifications in iOS 10, tvOS 10 e watchOS 3. Questo nuovo framework fornisce un set moderno di ...
    Davis Allie
    iOS

Avrai anche bisogno di un dispositivo iOS fisico per eseguire la tua app. Questo perché il simulatore iOS non supporta le notifiche push.

1. Configurazione dell'app iOS

Per iniziare, apri Xcode e crea un nuovo progetto basato su iOS> Applicazione> Applicazione vista singola modello:

Nella schermata successiva, una volta che hai inserito tutte le informazioni (puoi usare le stesse informazioni che ho io), assicurati di prendere nota del Identificativo del pacchetto come avremo bisogno di questo più tardi:

Una volta che Xcode ha creato il tuo progetto, apri il tuo AppDelegate.swift file e aggiungi la seguente riga di codice nella parte superiore:

import UserNotifications

Quindi, sostituire il applicazione (_: didFinishLaunchingWithOptions :) metodo con il seguente:

func application (_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool let center = UNUserNotificationCenter.current () consente opzioni: UNAuthorizationOptions = [.alert, .badge, .sound] center.requestAuthorization (opzioni : options, completionHandler: autorizzato, errore in se autorizzato application.registerForRemoteNotifications ()) restituisce true

Con questo codice, chiediamo il permesso all'utente di mostrare le notifiche utilizzando il framework UserNotifications. Se l'utente accetta questo, registriamo per le notifiche remote (push) chiamando il registerForRemoteNotifications metodo.

Per l'ultimo passaggio della configurazione dell'app, fai clic sul nome del tuo progetto nella parte superiore di Xcode File Navigator e poi vai al funzionalità scheda. In questa schermata, accendi Le notifiche push passa ad aggiungere le opportune autorizzazioni alla tua app:

2. Impostazione del certificato

Servizio di notifica push Apple

A livello di base, il sistema di notifiche push per iOS funziona come segue:

  • Il server di terze parti invia un carico utile di notifica al servizio Apple Push Notification (APN).
  • Gli APN convalidano il carico utile per garantire che provenga da una fonte legittima.
  • Se valido, gli APN inoltrano quindi il carico utile al dispositivo iOS corretto.

Per autenticare correttamente un carico utile di notifica, è necessario creare un certificato di firma. Per iniziare il processo di creazione di questo certificato, dovrai accedere con il tuo ID Apple sul sito Web degli sviluppatori di Apple.

Registrazione di un identificatore di applicazione

Dopo aver effettuato l'accesso, fai clic su Certificati, ID e profili nella barra laterale di sinistra:

Nella schermata successiva, selezionare Identificatori> ID app nella barra laterale sinistra e quindi fai clic sul pulsante più nell'angolo in alto a destra:

Quando crei l'identificatore dell'applicazione, puoi inserire tutto ciò che vuoi per il tuo Nome nel Descrizione ID dell'app sezione. Nel Suffisso ID app sezione, selezionare il ID app esplicito opzione e inserire il identificatore del gruppo che hai fatto durante la creazione del progetto nel ID pacchetto campo. Infine, nel Servizi app sezione, assicurarsi di selezionare l'opzione casella di controllo per abilitare Le notifiche push. Dopo aver inserito tutte le informazioni, scorrere verso il basso fino alla fine della pagina e selezionare Continua pulsante. 

Ti verrà ora presentata una panoramica del tuo nuovo ID app come mostrato nello screenshot qui sotto:

Verifica che tutte le informazioni siano corrette (in questa fase, Le notifiche push dovrebbe mostrare come configurabile) e quindi fare clic Registrare nella parte inferiore dello schermo.

Creazione di certificati

Vai a certificati nella barra laterale sinistra e fai nuovamente clic sul pulsante più nell'angolo in alto a destra. Nella schermata successiva, nel Sviluppo sezione, selezionare il Servizio di notifica Push di Apple SSL (Sandbox) opzione e clicca Continua in basso. 

Nella schermata successiva, seleziona l'ID della tua app dal menu a discesa e poi fai clic su Continua.

Se non si dispone già di un file di richiesta di firma del certificato (CSR), seguire le istruzioni nella schermata successiva per crearne uno. Una volta che hai preparato un CSR, puoi continuare con la schermata successiva e caricarlo.

Una volta che il certificato è stato creato, fare clic su Scaricare pulsante e quindi aprire il file con Accesso portachiavi app sul tuo computer. Se ti viene chiesto su quale portachiavi aggiungere il certificato, seleziona il accesso opzione.

Ancora nel Accesso portachiavi app, selezionare il certificati opzione nella sezione inferiore della barra laterale di sinistra:

Ora dovrai trovare il certificato che hai appena creato; avrà il nome Mela Sviluppo IOS Servizi push: ID pacchetto. Una volta trovato il certificato, fai clic con il tasto destro su questa chiave e seleziona il Esportare opzione. Nel popup che appare, puoi chiamare il file come vuoi, ma assicurati che il Formato del file è impostato per Scambio di informazioni personali (.p12):

Quando si esporta il certificato, non fornire una password per il file p12. Questo perché back4app richiede un file di certificato senza protezione tramite password.

Il servizio Apple Push Notification ha due ambienti separati: uno per le app in sviluppo e uno per le app in produzione. 

Finora, abbiamo creato un certificato da utilizzare per l'ambiente di sviluppo, che funzionerà durante il test della tua app tramite Xcode. 

Quando rilasci la tua app su App Store, dovrai creare un produzione certificato. Per fare ciò, ripeti i passi che abbiamo compiuto nel Creazione di certificati sezione di questo tutorial, ma selezionare Servizio di notifica Push di Apple SSL (Sandbox e produzione). Si prega di notare che in Accesso portachiavi, il nome del certificato sarà: Servizi push Apple: ID pacchetto.

Si noti che potrebbe non essere necessario creare due certificati separati, a seconda dell'implementazione della notifica push che si sta utilizzando. Sin dall'inizio di quest'anno, Apple ha permesso la creazione di un certificato a duplice scopo: il Servizio di notifica Push di Apple SSL (Sandbox e produzione) type: che può essere utilizzato per connettersi ad entrambi gli ambienti. Sfortunatamente, alcuni servizi come back4app non sono ancora stati aggiornati per sfruttare questi nuovi certificati e richiedono uno dedicato per ciascun ambiente.

3. Configurazione di back4app

Per questo tutorial, utilizzeremo back4app per fornire l'implementazione lato server delle nostre notifiche push. back4app è un servizio che fornisce un back-end facile da usare e gratuito (con limiti) per la tua app. Funziona come server di hosting per il progetto Parse Server.

Per essere configurato con back4app, dovrai andare su back4app.com e registrarti per un account se non ne hai già uno.

Una volta effettuato l'accesso, verrai indirizzato a una schermata vuota in cui verranno visualizzate tutte le tue app. Per crearne uno nuovo, fare clic su Crea una nuova app Parse pulsante nell'angolo in alto a sinistra. Nella schermata successiva, inserisci il nome della tua app, quindi fai clic su Il prossimo

Una volta che la tua app è stata creata, verrai portato a una schermata con un sacco di identificatori e chiavi diversi. Quelli di cui abbiamo bisogno di prendere nota sono i ID app, Indirizzo API Parse, e Chiave del cliente. Dopo averne una copia, puoi fare clic su Vicino pulsante nella parte inferiore della pagina.

Ora dovresti essere nella schermata principale della dashboard per la tua app. Per configurare l'implementazione delle notifiche push, vai su Impostazioni di notifica push di iOS pagina. Qui, premi il Scegli il file pulsante e caricare il .p12 file che hai creato in precedenza. Clic Inviare e il tuo ID bundle dovrebbe quindi apparire nell'elenco come mostrato nello screenshot seguente:

4. Impostazione SDK Parse

Come ultima fase del nostro setup, abbiamo bisogno di scaricare e aggiungere l'SDK Parse alla nostra applicazione. Per fare ciò, puoi seguire i primi tre passaggi della guida Quickstart iOS di back4app.

Una volta completata la configurazione di Parse SDK e aggiunto il codice di configurazione richiesto al tuo applicazione (_: didFinishLaunchingWithOptions :) metodo, aggiungi il seguente metodo al tuo AppDelegate classe:

func application (_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) let installation = PFInstallation.current () installazione? .setDeviceTokenFrom (deviceToken) installazione? .saveInBackground ()

Questo metodo verrà chiamato se l'utente accetta la richiesta della tua app per mostrare le notifiche. In particolare, il registerForRemoteNotifications il metodo che abbiamo chiamato in precedenza nel nostro delegato dell'app chiamerà il applicazione (_: didRegisterForRemoteNotificationsWithDeviceToken :) metodo una volta completata l'elaborazione. Nella nostra implementazione di questo metodo, otteniamo semplicemente i dati del dispositivo e li carichiamo nell'app Parse back4app.

5. Invio di una notifica

Ora che tutte le nostre impostazioni sono complete, puoi costruire ed eseguire la tua app su un dispositivo iOS. Una volta aperta la tua app, visualizzerai il seguente avviso:

Clicca il permettere pulsante e la tua app si registrerà per le notifiche remote.

Ora puoi andare a Parse Dashboard per la tua applicazione. Una volta nella dashboard della tua app, fai clic su Nucleo nella barra laterale sinistra se non è già selezionato. Una volta il Nucleo la sezione è stata ampliata, sarai in grado di vedere il numero totale di Installazione oggetti per la tua app. Al momento, questo dovrebbe essere mostrato 1 come in questo screenshot:

Se questo numero è ancora 0, dovrai tornare indietro e controllare di aver copiato tutto il codice nel tuo AppDelegate classificare correttamente, incluso l'identificativo dell'app back4app e la chiave del client.

Dopo esserti assicurato che la tua app abbia salvato i suoi dati di installazione su Parse, vai su Spingere sezione nella barra laterale sinistra di Parse Dashboard. Ora dovresti essere su una schermata in cui puoi inviare la tua notifica personalizzata. Per ora, puoi lasciare tutte le impostazioni come sono e basta digitare un messaggio personalizzato sotto il Scrivi il tuo messaggio sottotitolo.

Quando sei pronto, blocca lo schermo del tuo dispositivo iOS e quindi premi il tasto Invia push pulsante nell'angolo in basso a destra della Parse Dashboard. Dopo alcuni secondi, dovresti vedere la notifica push nella schermata di blocco:

Conclusione

Congratulazioni! Hai appena configurato con successo le notifiche push per un'applicazione iOS! Come puoi vedere, oltre alla noiosa creazione di certificati SSL, l'utilizzo di un servizio come back4app rende l'implementazione delle notifiche push abbastanza semplice.

Ovviamente, ci sono altri servizi oltre a back4app che puoi utilizzare per notifiche push tra cui Backendless, Google Firebase e persino il CloudKit di Apple. Ho scelto back4app da utilizzare per questo tutorial poiché la maggior parte delle configurazioni di notifiche push segue un processo simile. Offre anche molte altre fantastiche funzioni gratuite di cui ogni app potrebbe trarre vantaggio.

Come sempre, si prega di essere sicuri di lasciare i vostri commenti e feedback nella sezione commenti qui sotto. E dai un'occhiata ad alcuni dei nostri altri tutorial sull'utilizzo di servizi back-end basati su cloud per le app mobili!