Impostazione delle notifiche push su iOS

introduzione

Originariamente Apple ha introdotto notifiche push per consentire alle applicazioni di rispondere agli eventi se l'applicazione non è in esecuzione in primo piano. Tuttavia, il sistema operativo e i dispositivi iOS sono cambiati significativamente negli ultimi anni e le applicazioni non devono fare affidamento esclusivamente sulle notifiche push per eseguire attività in background.

Ciò non significa però che le notifiche push non siano più utili. Le notifiche push sono ottime per notificare un'applicazione su eventi importanti e per coinvolgere gli utenti della tua applicazione. Inoltre, non dimenticare che un'applicazione non può ancora funzionare in background senza restrizioni. In altre parole, lo scopo originale delle notifiche push è ancora valido.

Anche gli sviluppatori iOS più esperti si gratta di volta in volta quando devono occuparsi del provisioning delle applicazioni. Sfortunatamente, le notifiche push si aggiungono a questa complessità. Con questo tutorial, spero di mostrarti che impostare le notifiche push non dovrebbe essere un incubo. Segui e ti prometto che invierai notifiche push in pochissimo tempo.

Se stai cercando una soluzione rapida, puoi provare AZNotification: Notifiche per iPhone su Envato Market, che ti consente di creare facilmente notifiche interessanti in pochissimo tempo. Le notifiche cadono dalla barra di navigazione e possono visualizzare messaggi informativi e di errore. O assumere uno sviluppatore di app Envato Studio per aiutarti.

AZNotification: notifiche per iPhone 

1. Prerequisiti

Avrai bisogno di due cose se vuoi seguirmi. La prima cosa di cui hai bisogno è un dispositivo fisico per ricevere notifiche push, perché il simulatore iOS non supporta le notifiche push. La seconda cosa di cui hai bisogno è un account sviluppatore iOS a pagamento. Solo gli account a pagamento possono eseguire il provisioning delle applicazioni per l'esecuzione su un dispositivo fisico.

2. Impostazione del progetto

L'obiettivo di questo tutorial è creare un'applicazione che sia configurata per ricevere notifiche push. Apri Xcode e crea un nuovo progetto basato sul Applicazione vista singola modello.

Assegna un nome al progetto Spingere, inserisci un identificatore di società e il prefisso di classe e imposta dispositivi per iPhone.

3. Registrazione

Anche se non discuterò l'infrastruttura backend nitida e grossa delle notifiche push, è importante che tu sappia e comprenda cosa deve fare la tua applicazione per ricevere le notifiche push e perché lo fa.

Aperto TSPAppDelegate.m e aggiorna il applicazione: didFinishLaunchingWithOptions: come mostrato di seguito. Noi chiamiamo registerForRemoteNotificationTypes: sul applicazione oggetto, passando i tipi di notifica a cui siamo interessati. Il sistema operativo ora sa che l'applicazione è interessata a ricevere notifiche push.

- (BOOL) application: (applicazione UIApplication *) ha fattoFinishLaunchingWithOptions: (NSDictionary *) launchOptions // Register for Remote Notifications [application registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; return YES; 

Il sistema operativo contatta i server Apple e ottiene a gettone dispositivo per identificare in modo univoco il dispositivo su cui è in esecuzione l'applicazione. Questo token dispositivo viene utilizzato dall'infrastruttura del server per inviare notifiche push. Lo fa inviando il token del dispositivo insieme alla notifica push effettiva ai server Apple. I server Apple sono incaricati di distribuire le notifiche push ai dispositivi appropriati.

Si noti che il token dispositivo differisce per ogni applicazione e può persino cambiare nel tempo per la stessa applicazione. Pertanto, Apple consiglia di richiedere un token dispositivo ogni volta che viene avviata l'applicazione e di inviare il token del dispositivo al back-end per assicurarsi che il token del dispositivo sia aggiornato.

Se stai usando un servizio come Parse o Urban Airship, allora questo è qualcosa di cui non devi preoccuparti. In tal caso, è sufficiente inviare il back-end al dispositivo iOS token del dispositivo.

I metodi che indicano alla tua applicazione se la registrazione per le notifiche remote è andata a buon fine o meno applicazione: didRegisterForRemoteNotificationsWithDeviceToken:applicazione: didFailToRegisterForRemoteNotificationsWithError: rispettivamente. Per ora, implementa questi metodi come mostrato di seguito.

- (void) application: (applicazione UIApplication *) didRegisterForRemoteNotificationsWithDeviceToken: (NSData *) deviceToken NSLog (@ "Did Register for Remote Notifications with Device Token (% @)", deviceToken); 
- (void) application: (UIApplication *) application didFailToRegisterForRemoteNotificationsWithError: (NSError *) error NSLog (@ "Non è riuscito a registrare le notifiche remote"); NSLog (@ "% @,% @", errore, error.localizedDescription); 

Entrambi i metodi sono dichiarati dal UIApplicationDelegate protocollo. Questo protocollo dichiara anche un altro metodo, applicazione: didReceiveRemoteNotification:, che viene richiamato quando l'applicazione riceve una notifica remota. Sta a te gestire tutte le notifiche push in arrivo. Il applicazione: didReceiveRemoteNotification: metodo ti consegna il carico utile della notifica push come NSDictionary oggetto. L'applicazione deve decidere in che modo dovrebbe rispondere alla notifica push.

Se si esegue l'applicazione, quindi il applicazione: didFailToRegisterForRemoteNotificationsWithError: il metodo sarà invocato. Questo non è sorprendente dato che non abbiamo ancora finito di configurare la nostra applicazione per le notifiche push. Come promemoria, le notifiche remote non sono supportate da iOS Simulator. Avrai bisogno di un dispositivo fisico per completare questo tutorial.

4. Certificato SSL

Per completare il passaggio successivo, devi accedere al tuo account sviluppatore iOS presso iOS Dev Center di Apple. Scegliere Identifiers dal App per iOS sezioni.

Fai clic sul pulsante più in alto a destra e inserisci un Descrizione ID dell'app. Questo ti aiuta a identificare l'ID app più tardi.

Puoi lasciare il Prefisso ID app come è, ma il Suffisso ID app deve essere impostato su ID app esplicito, invece di ID app jolly. Se si desidera un'applicazione per ricevere notifiche remote, è necessario utilizzare un ID app esplicito, ad esempio com.tutsplus.push, invece di com.tutsplus. *.

Nella sezione Servizi app, abilitare Le notifiche push. Clic Continua per inviare il modulo e fare clic Sottoscrivi per creare l'ID app.

Dall'elenco di ID app, seleziona quello appena creato e fai clic su modificare pulsante sotto di esso. Scorri verso il basso finché non vedi la sezione che copre le notifiche push. Dovresti vedere due pulsanti etichettati Crea certificato ...  come mostrato di seguito.

Come accennato in precedenza, il tuo back-end comunica con i server Apple per inviare notifiche remote alla tua applicazione. Il tuo backend invia notifiche remote alla tua applicazione tramite i server Apple. Per questo motivo, Apple ha bisogno di sapere che solo i tuoi server possono connettersi con i loro server. Non vuoi che qualcun altro invii notifiche remote alla tua applicazione.

Pertanto, Apple richiede di creare un certificato SSL. Molti sviluppatori rabbrividiscono alle parole "certificati" e "provisioning", ma non è poi così difficile. Segui e sarai pronto in meno di due minuti.

Aperto Accesso portachiavi sul tuo computer di sviluppo e seleziona Certificate Assistant> Richiedi un certificato da un'autorità di certificazione ... dal Accesso portachiavi menu. Controlla che non sia selezionato alcun tasto in Accesso portachiavi quando si seleziona questa opzione.

Inserisci un indirizzo email e a Nome comune per identificare il certificato più tardi. Lasciare il Email CA. campo vuoto e selezionare Salvato sul disco. Clic Continua e salvare il richiesta di firma del certificato sul tuo disco rigido.

Hai creato alcune cose completando questo passaggio. Hai creato una richiesta di firma del certificato e una chiave pubblica e privata. Le chiavi dovrebbero essere visibili in Accesso portachiavi come mostrato di seguito.

Tornate al Dev Center di iOS e fate clic su Crea certificato ... pulsante che abbiamo visto prima. Apple ti dice quali passaggi devi seguire per creare la richiesta di firma del certificato, ma li abbiamo già completati. Clic Continua, carica la richiesta di firma del certificato facendo clic su Scegli il file… pulsante e premere creare per generare il certificato SSL.

Come indicato da Apple, scarica il certificato e fai doppio clic per installarlo Accesso portachiavi. Verifica che il certificato sia stato aggiunto Accesso portachiavi e collegato alla chiave privata corretta.

Il prossimo passo, il provisioning delle applicazioni, è qualcosa che fa inciampare molti sviluppatori. Lascia che ti guidi attraverso.

5. Provisioning dell'applicazione

Prima di poter testare la configurazione delle notifiche push, è necessario creare un profilo di provisioning per la nostra applicazione. In iOS Dev Center, selezionare Sviluppo nel Profili di provisioning sezione. Fai clic sul pulsante più in alto a destra e seleziona Sviluppo App iOS sotto il Sviluppo sezione.

Clic Continua e seleziona il tuo ID app dall'elenco. Selezionare i certificati che si desidera includere nel profilo di provisioning e fare clic Continua. Poiché stiamo creando un profilo di provisioning per lo sviluppo, dobbiamo anche specificare quali dispositivi devono essere inclusi nel profilo di provisioning. Assicurati che il tuo dispositivo di prova sia incluso. Dare al profilo di provisioning un nome ragionevole e fare clic creare.

Scarica il profilo di provisioning e trascinalo in Xcode per aggiungerlo. Aggiorna le impostazioni di generazione del tuo target in Xcode per utilizzare il nuovo profilo di provisioning. Crea ed esegui la tua applicazione per assicurarti che tutto funzioni come previsto.

Se riscontri problemi, quindi controlla che l'identificativo del bundle dell'applicazione corrisponda a quello dell'ID app. Si noti che un identificatore di gruppo è sensibile al maiuscolo / minuscolo.

Se hai seguito i passaggi delineati in questo tutorial, la tua applicazione dovrebbe suggerirti con il seguente messaggio.

Se si tocca ok, la tua applicazione chiederà al sistema operativo un token dispositivo. Se questo ha successo, il applicazione: didRegisterForRemoteNotificationsWithDeviceToken: metodo del UIApplicationDelegate viene invocato il protocollo che ti consegna il token del dispositivo. Poiché abbiamo aggiunto un'istruzione di registro a questo metodo, il token del dispositivo dovrebbe anche essere registrato nella console in Xcode.

Premere [2182: 60b] Registrati per notifiche remote con token dispositivo (<131cec1a 64cf8f4c 80009196 6157311d c774df92 056c74c2 e5538e52 db4848f1>)

6. Invio di notifiche push

Per verificare se arrivano notifiche push inviate, è necessario disporre di un back-end sul quale l'applicazione può inviare il token del dispositivo. Questo back-end può quindi connettersi con i server Apple per inviare notifiche push.

Non tratterò questo aspetto delle notifiche push in questo tutorial, ma questa è la parte facile delle notifiche push, specialmente se stai usando un servizio come Parse o Urban Airship.

Puoi anche usare Houston, una gemma Ruby sviluppata da Mattt Thompson, che rende molto semplice l'invio di notifiche push.

Conclusione

Spero che questo tutorial ti abbia mostrato che le notifiche push non sono difficili da configurare come molti pensano gli sviluppatori. È vero che ci vuole un po 'di giocherellare con chiavi e certificati, ma una volta che hai capito le parti mobili, allora non è così difficile da capire e impostare.

La verità è che la parte difficile è la creazione di chiavi e certificati. Gestire le notifiche push nella tua applicazione iOS è molto semplice e diretto.