Implémentation de notifications push dans votre application
Il y a quelques années, des services ont commencé à émerger qui apportaient la simplicité des systèmes pub / sub typiques aux notifications push. Au lieu d’avoir à suivre manuellement les identifiants de téléphone de votre utilisateur individuellement, ces services vous permettent d’abonner simplement vos utilisateurs aux canaux souhaités pour recevoir des notifications push.
Par exemple, si un utilisateur souhaite être averti lorsqu’un cours sur Javascript est publié sur Thinkster, nous pourrions l’abonner à un canal appelé « javascript » auquel des milliers d’autres utilisateurs pourraient également être abonnés. Cependant, déclencher une notification push à tous ces utilisateurs ne prendrait qu’une seule ligne de code – il suffit de publier une notification push sur le canal « javascript » et tous nos utilisateurs la recevront. Comparez cela à l’interrogation de votre base de données contenant les identifiants de téléphone de votre utilisateur, en segmentant les utilisateurs qui souhaitent être informés de Javascript, puis en envoyant des notifications individuellement pour chacun d’eux à APNS / GCM. Beurk!
Il existe quelques services qui offrent cette fonctionnalité pub / sub, mais à ce stade, nous vous recommandons fortement d’utiliser Parse pour gérer vos notifications push. Voici pourquoi: – Il est largement adopté et durci par l’utilisation de plus de 100 000 applications – Il est gratuit d’envoyer un nombre illimité de notifications push tant que vous avez < 1 million d’utilisateurs (!!!) enregistrés sur votre application (après cela, vous devez payer un maigre cinq cents pour mille utilisateurs supplémentaires) – Leurs plugins et API sont incroyablement faciles à utiliser
Nous ferons un aperçu de quelques autres services disponibles plus tard dans ce cours, mais en général, la configuration de ces différents services est très similaire!
Préparation de votre environnement
L’autre chose que vous devez savoir lors du développement pour iOS est qu’Apple ne vous permet pas d’envoyer de notifications push aux applications exécutées dans l’émulateur; vous devez utiliser un appareil réel. Nous vous recommandons de tester toutes les fonctions que la notification push invoquera dans l’émulateur, puis lorsque votre application sera construite, vous devrez charger votre application sur un appareil réel pour vous assurer que les notifications push sont effectivement reçues.
Configuration de l’analyse
Pour que ce projet fonctionne spécifiquement pour votre application, nous devons échanger vos clés et identifiants uniques :
À ce stade, votre projet doit être exécutable! Il n’y a vraiment que deux choses que vous devez appeler lorsque vous utilisez Parse: initialize
, qui garantit que cet appareil est enregistré pour les notifications push, et subscribe
, qui abonnera ce téléphone spécifique à n’importe quel canal que vous fournissez. Il existe également une troisième méthode getInstallationId
qui renverra l’ID d’installation de cet utilisateur d’analyse, mais elle n’est utile que si vous plongez en profondeur dans certaines des fonctionnalités les plus avancées de Parse.
Prenons un moment rapide pour examiner le code reliant notre application à analyser www/app.js
:
window.parsePlugin.initialize(appId, clientKey, function() { console.log('Parse initialized successfully.'); window.parsePlugin.subscribe('SampleChannel', function() { console.log('Successfully subscribed to SampleChannel.'); window.parsePlugin.getInstallationId(function(id) { // update the view to show that we have the install ID console.log('Retrieved install id: ' + id); /** * Now you can construct an object and save it to your own services, or Parse, and corrilate users to parse installations * var install_data = { installation_id: id, channels: } * */ }, function(e) { console.log('Failure to retrieve install id.'); }); }, function(e) { console.log('Failed trying to subscribe to SampleChannel.'); }); }, function(e) { console.log('Failure to initialize Parse.'); });
Ce n’est pas terriblement complexe à regarder, mais notez qu’il est exécuté après que toutes les applications Cordova ont été chargées dans $ionicPlatform.ready
. C’est important, car nous ne voulons pas appeler les méthodes window.parse
si le plugin d’analyse n’est pas encore disponible pour nous! Une autre chose à noter est que ce code sera déclenché à chaque ouverture de l’application. Vous pouvez appeler initialize
et subscribe
sur le même canal autant de fois que vous le souhaitez sans que cela n’affecte l’utilisateur, votre compte d’analyse ou APNS/GCM. En fait, il est probablement préférable de le faire pour s’assurer que l’utilisateur n’a pas accidentellement désactivé les notifications push pour votre application depuis la dernière fois qu’il l’a utilisée.
Étant donné que cette application est désormais abonnée au canal d’analyse ‘SampleChannel’, cela signifie que nous pouvons désormais lui envoyer des notifications push. Comme on le voit dans la vidéo ci-dessus, vous pouvez le faire via le tableau de bord Parse Push en spécifiant ‘SampleChannel’ comme cible. Cependant, si vous créez une application prête pour la production, vous voudrez probablement envoyer des notifications push par programmation depuis votre serveur via l’API REST de Parse.
L’envoi de notifications push via des canaux est non seulement idéal pour des groupes d’utilisateurs, mais vous pouvez également l’utiliser pour des utilisateurs individuels. Par exemple, vous pouvez créer par programme des canaux uniques pour chacun de vos utilisateurs en les abonnant simplement à un canal avec leur identifiant d’utilisateur ajouté à la fin de celui-ci (c’est-à-dire window.parsePlugin.subscribe('thinkster-user-' + userID)
). Même si vos utilisateurs se connectent à de nouveaux appareils, vous pouvez continuer à leur envoyer des notifications push simplement en connaissant leur identifiant d’utilisateur !