Configuration des notifications push sur iOS

introduction

À l'origine, Apple avait introduit les notifications push pour permettre aux applications de réagir aux événements si l'application ne s'exécutait pas au premier plan. Cependant, le système d'exploitation et les appareils iOS ont considérablement changé au cours des dernières années et les applications n'ont pas besoin de compter uniquement sur les notifications push pour effectuer des tâches en arrière-plan..

Cela ne signifie pas pour autant que les notifications push ne sont plus utiles. Les notifications push sont idéales pour informer une application des événements importants et pour maintenir les utilisateurs de votre application engagés. De plus, n'oubliez pas qu'une application n'est toujours pas autorisée à s'exécuter en arrière-plan sans restrictions. En d'autres termes, le but initial des notifications push est toujours valide.

Même les développeurs iOS les plus expérimentés se gratifient la tête de temps en temps lorsqu'ils doivent gérer le provisioning d'applications. Malheureusement, les notifications push ajoutent à cette complexité. Avec ce tutoriel, j'espère vous montrer que la configuration des notifications push ne doit pas être un cauchemar. Suivez-le et je vous promets d'envoyer des notifications push en un rien de temps.

Si vous cherchez une solution rapide, vous pouvez essayer AZNotification: Notifications pour iPhone sur Envato Market, ce qui vous permet de créer facilement des notifications attrayantes en un rien de temps. Les notifications sortent de la barre de navigation et peuvent afficher des messages d’information ainsi que des messages d’erreur. Ou embauchez un développeur d'applications Envato Studio pour vous aider.

AZNotification: Notifications pour iPhone 

1. Prérequis

Vous aurez besoin de deux choses si vous souhaitez suivre avec moi. La première chose dont vous avez besoin est un périphérique physique pour recevoir des notifications push, car le simulateur iOS ne prend pas en charge les notifications push. La deuxième chose dont vous avez besoin est un compte de développeur iOS payant. Seuls les comptes payants peuvent configurer des applications pour qu'elles s'exécutent sur un périphérique physique..

2. Configuration du projet

L'objectif de ce didacticiel est de créer une application configurée pour recevoir des notifications push. Ouvrez Xcode et créez un nouveau projet basé sur le Application à vue unique modèle.

Nommez le projet Pousser, entrez un identifiant d'entreprise et un préfixe de classe, puis définissez Dispositifs à l'iPhone.

3. Inscription

Même si je ne parlerai pas de l'infrastructure de base des notifications push, il est important que vous sachiez et compreniez ce que votre application doit faire pour recevoir des notifications push et pourquoi elle le fait..

Ouvrir TSPAppDelegate.m et mettre à jour le application: didFinishLaunchingWithOptions: comme indiqué ci-dessous. Nous appelons registerForRemoteNotificationTypes: sur le application objet, en transmettant les types de notification qui nous intéressent. Le système d'exploitation sait maintenant que l'application est intéressée par la réception de notifications push..

- Application (BOOL): (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions // S'inscrire aux notifications à distance [application registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSoundSoundSoundSoundSoundSoundSoundSoundSoundSoundSoundSoundSoundSoundSoundSound)] retourner OUI; 

Le système d'exploitation contacte les serveurs Apple et obtient un jeton de périphérique pour identifier de manière unique le périphérique sur lequel l'application est en cours d'exécution. Ce jeton de périphérique est utilisé par votre infrastructure de serveur pour envoyer des notifications push. Pour ce faire, il envoie le jeton de périphérique avec la notification push réelle aux serveurs Apple. Les serveurs Apple sont chargés de distribuer les notifications push aux appareils appropriés.

Notez que le jeton de périphérique diffère d'une application à l'autre et qu'il peut même évoluer dans le temps pour la même application. Apple recommande donc de demander un jeton de périphérique chaque fois que l'application est lancée et d'envoyer le jeton de périphérique à votre ordinateur afin de s'assurer que le jeton de périphérique est à jour..

Si vous utilisez un service comme Parse ou Urban Airship, vous n'avez pas à vous en préoccuper. Dans ce cas, il vous suffit d’envoyer au serveur le jeton de périphérique iOS remis à votre.

Les méthodes qui indiquent à votre application si l’enregistrement des notifications à distance a réussi ou non sont les suivantes: application: didRegisterForRemoteNotificationsWithDeviceToken: et application: didFailToRegisterForRemoteNotificationsWithError: respectivement. Pour l'instant, implémentez ces méthodes comme indiqué ci-dessous.

- application (void): (UIApplication *) application didRegisterForRemoteNotificationsWithDeviceToken: (NSData *) deviceToken NSLog (@ "s'est inscrit pour les notifications à distance avec jeton de périphérique (% @)", deviceToken); 
- application (void): application (UIApplication *) didFailToRegisterForRemoteNotificationsWithError: (NSError *) erreur NSLog (@ "Echec de l'enregistrement des notifications distantes"); NSLog (@ "% @,% @", error, error.localizedDescription); 

Les deux méthodes sont déclarées par le UIApplicationDelegate protocole. Ce protocole déclare également une autre méthode, application: didReceiveRemoteNotification:, qui est appelé lorsque l'application reçoit une notification à distance. C'est à vous de gérer les notifications push entrantes. le application: didReceiveRemoteNotification: la méthode vous remet la charge utile de la notification push en tant que NSDictionary objet. Votre application doit décider comment répondre à la notification push..

Si vous exécutez votre application, alors le application: didFailToRegisterForRemoteNotificationsWithError: La méthode sera invoquée. Cela n’est pas surprenant puisque nous n’avons pas fini de configurer notre application pour les notifications push. Pour rappel, les notifications à distance ne sont pas prises en charge par le simulateur iOS. Vous aurez besoin d'un périphérique physique pour suivre ce didacticiel..

4. Certificat SSL

Pour terminer l'étape suivante, vous devez vous connecter à votre compte de développeur iOS sur le Centre de développement iOS d'Apple. Choisir Identifiants du Applications iOS sections.

Cliquez sur le bouton plus en haut à droite et entrez un App ID Description. Cela vous aide à identifier l'identifiant de l'application plus tard.

Vous pouvez laisser le Préfixe d'identifiant d'application tel quel, mais le Suffixe d'identifiant d'application doit être réglé sur Identifiant d'application explicite, au lieu de Identifiant d'application générique. Si vous souhaitez qu'une application reçoive des notifications à distance, vous devez utiliser un Identifiant d'application explicite, tel que com.tutsplus.push, au lieu de com.tutsplus. *.

Dans la section Services d'application, activer Notifications push. Cliquez sur Continuer soumettre le formulaire et cliquer Soumettre créer l'ID de l'application.

Dans la liste des identifiants d’application, sélectionnez celui que vous venez de créer et cliquez sur le bouton modifier bouton en dessous. Faites défiler jusqu'à la section qui couvre les notifications push. Vous devriez voir deux boutons étiquetés Créer un certificat…  comme indiqué ci-dessous.

Comme je l'ai mentionné précédemment, votre serveur communique avec les serveurs Apple pour envoyer des notifications à distance à votre application. Votre serveur envoie des notifications à distance à votre application via les serveurs Apple. Pour cette raison, Apple doit savoir que seuls vos serveurs peuvent se connecter à leurs serveurs. Vous ne voulez pas que quelqu'un d'autre envoie des notifications à distance à votre application.

Apple vous oblige donc à créer un certificat SSL. De nombreux développeurs s'émerveillent des mots "certificats" et "mise en service", mais ce n'est vraiment pas si difficile. Suivez-le et vous serez prêt en moins de deux minutes.

Ouvrir Porte-clés sur votre machine de développement et sélectionnez Assistant de certification> Demander un certificat à une autorité de certification… du Porte-clés menu. Vérifiez à nouveau qu'aucune clé n'est sélectionnée dans Porte-clés lorsque vous sélectionnez cette option.

Entrez une adresse email et un Nom commun d'identifier le certificat plus tard. Quitter le Courriel CA champ vide et sélectionnez Enregistré sur le disque. Cliquez sur Continuer et sauver le demande de signature de certificat sur votre disque dur.

Vous avez créé quelques choses en complétant cette étape. Vous avez créé une demande de signature de certificat ainsi que des clés publique et privée. Les clés doivent être visibles dans Porte-clés comme indiqué ci-dessous.

Retournez dans le centre de développement iOS et cliquez sur le bouton Créer un certificat… bouton que nous avons vu plus tôt. Apple vous indique les étapes à suivre pour créer la demande de signature de certificat, mais nous les avons déjà complétées. Cliquez sur Continuer, télécharger la demande de signature de certificat en cliquant sur le bouton Choisir le fichier… bouton, et appuyez sur produire générer le certificat SSL.

Selon les instructions d’Apple, téléchargez le certificat et double-cliquez dessus pour l’installer. Porte-clés. Vérifiez que le certificat est ajouté à Porte-clés et lié à la clé privée correcte.

La prochaine étape, le provisioning des applications, est une chose qui interpelle de nombreux développeurs. Laissez-moi vous guider.

5. Mise en service de l'application

Avant de pouvoir tester la configuration de nos notifications push, nous devons créer un profil d'approvisionnement pour notre application. Dans le Centre de développement iOS, sélectionnez Développement dans le Profils d'approvisionnement section. Cliquez sur le bouton plus en haut à droite et sélectionnez Développement d'applications iOS sous le Développement section.

Cliquez sur Continuer et sélectionnez votre identifiant d'application dans la liste. Sélectionnez les certificats que vous souhaitez inclure dans le profil de provisioning et cliquez sur Continuer. Comme nous créons un profil d'approvisionnement pour le développement, nous devons également spécifier les périphériques à inclure dans le profil d'approvisionnement. Assurez-vous que votre appareil de test est inclus. Nommez le profil de provisioning et cliquez dessus. produire.

Téléchargez le profil d'approvisionnement et faites-le glisser dans Xcode pour l'ajouter. Mettez à jour les paramètres de construction de votre cible dans Xcode pour utiliser le nouveau profil de provisioning. Générez et exécutez votre application pour vous assurer que tout fonctionne comme prévu.

Si vous rencontrez des problèmes, vérifiez à nouveau que l'identifiant de l'ensemble de votre application correspond à celui de l'ID d'application. Notez qu'un identifiant de paquet est sensible à la casse.

Si vous avez suivi les étapes décrites dans ce didacticiel, votre application doit vous indiquer le message suivant..

Si vous appuyez sur D'accord, votre application demandera au système d'exploitation un jeton de périphérique. Si cela réussit, le application: didRegisterForRemoteNotificationsWithDeviceToken: méthode du UIApplicationDelegate protocole est invoqué, vous remettant le jeton de périphérique. Comme nous avons ajouté une instruction de journal à cette méthode, le jeton de périphérique doit également être connecté à la console dans Xcode..

Push [2182: 60b] s'est enregistré pour les notifications à distance avec jeton de périphérique (<131cec1a 64cf8f4c 80009196 6157311d c774df92 056c74c2 e5538e52 db4848f1>)

6. Envoi de notifications push

Pour vérifier si des notifications push que vous envoyez arrivent, vous devez disposer d'un backend sur lequel votre application peut envoyer le jeton de périphérique. Ce serveur peut ensuite se connecter aux serveurs d’Apple pour envoyer des notifications push..

Je ne couvrirai pas cet aspect des notifications push dans ce didacticiel, mais c'est la partie la plus facile des notifications push, en particulier si vous utilisez un service tel que Parse ou Urban Airship..

Vous pouvez également utiliser Houston, un joyau Ruby développé par Mattt Thompson, qui facilite l'envoi de notifications push..

Conclusion

J'espère que ce tutoriel vous a montré que les notifications push ne sont pas aussi difficiles à configurer que le pensent la plupart des développeurs. C'est vrai qu'il faut un peu de bidouillage avec des clés et des certificats, mais une fois que vous avez compris les pièces mobiles, il n'est pas si difficile à comprendre et à configurer.

La vérité est que la partie difficile consiste à créer des clés et des certificats. La gestion des notifications push dans votre application iOS est très simple et rapide.