iOS
Send Push Notifications
Notifications push avec Cloud Code et Objective-C en iOS
26 min
envoi de notifications push en utilisant le code cloud avec objective c introduction cette section explique comment vous pouvez envoyer des notifications push en utilisant le code cloud via back4app voici à quoi cela ressemblera à tout moment, vous pouvez accéder au projet complet construit avec ce tutoriel sur notre dépôt github pour compléter ce guide rapide, vous avez besoin de xcode une application créée sur back4app suivez le tutoriel de nouvelle application parse pour apprendre à créer une application parse sur back4app une application ios connectée à back4app remarque suivez le tutoriel d'installation du sdk parse (swift) pour créer un projet xcode connecté à back4app une application ios configurée via tutoriel des notifications push back4app via le tableau de bord un appareil ios, iphone ou ipad, fonctionnant sous ios 10 ou version ultérieure un compte développeur apple payant 1 configurez votre application ios pour recevoir des notifications push chaque application parse installée sur un appareil enregistré pour les notifications push a un objet associé installation installation l' installation installation est l'endroit où vous stockez toutes les données nécessaires pour cibler les notifications push par exemple, dans votre application, vous pourriez stocker les équipes qui intéressent l'un de vos utilisateurs pour envoyer des mises à jour sur leurs performances enregistrer l' installation installation est également nécessaire pour suivre les événements d'ouverture d'application liés aux push la manière la plus simple de commencer à envoyer des notifications est d'utiliser des canaux cela vous permet d'utiliser un modèle éditeur abonné pour envoyer des notifications push les appareils commencent par s'abonner à un ou plusieurs canaux, et les notifications peuvent ensuite être envoyées à ces abonnés les canaux auxquels un installation installation donné s'abonne sont stockés dans le champ des canaux canaux de l' installation installation après cela, nous allons aborder l'envoi de notifications push ciblées à un utilisateur unique ou à un groupe d'utilisateurs en fonction d'une requête à l'avenir, nous allons supposer que vous avez complété toutes les étapes du tutoriel sur les notifications push back4app via le tableau de bord , même si vous utilisez le projet ios construit avec ce tutoriel qui est disponible sur notre dépôt github vous devriez avoir des notifications push de base fonctionnant et également être en mesure d'envoyer des notifications via la console d'administration 2 abonnez votre appareil au canal d'actualités tout d'abord, nous allons ajouter un canal à votre objet d'installation nous allons faire cela en modifiant la méthode createinstallationonparse dans notre fichier app delegate ouvrez le fichier appdelegate m de votre projet et assurez vous que votre version de didregisterforremotenotificationswithdevicetoken est la même que le code ci dessous nous ajoutons une nouvelle ligne de code ‘\[currentinstallation setobject @\[@”news1”] forkey @”channels”];’ qui définira le tableau de canaux de l'objet d'installation pour contenir un canal appelé ‘news’ cela nous permettra d'envoyer un message à tous ceux qui s'abonnent au canal appelé ‘news’ via le code cloud appdelegate m 2\ testez le en exécutant votre application sur un appareil physique vous ne pouvez pas l'exécuter sur un simulateur vous aurez besoin d'un véritable jeton de notification pour mettre à jour votre enregistrement d'installation, donc un appareil physique est indispensable après qu'il ait été exécuté avec succès, vous devriez voir cela dans la section d'installation de votre tableau de bord vous pouvez vérifier en allant sur le site web de back4app et cliquez sur le tableau de bord de votre application, puis vérifiez la table d'installation sous la colonne des canaux, vous devriez voir 'news', vous montrant que vous êtes maintenant abonné au canal de notification news 3 créez votre cloud code pour en savoir plus sur la façon de commencer avec cloud code regardez le tutoriel cloud code pour ios créer un js js fichier pour mettre votre code cloud vous devez l'appeler main js main js afin que back4app sache que c'est ici que vous stockez votre code cloud définir une fonction cloud, en utilisant parse cloud define parse cloud define , pour appeler la notification push à l'intérieur de la fonction, nous appellerons parse push send parse push send pour envoyer des notifications au canal ‘news’ il est nécessaire d'utiliser la clé maître dans cette opération le code suivant exécute ces étapes parse server 3 x // main js 1 parse cloud define("pushsample", (request) => { 2 3 return parse push send({ 4 channels \["news"], 5 data { 6 title "hello from the cloud code", 7 alert "back4app rocks!", 8 } 9 }, { usemasterkey true }); 10 }); parse server 2 x //main js 1 parse cloud define("pushsample", function (request, response) { 2 parse push send({ 3 channels \["news"], 4 data { 5 title "hello from the cloud code", 6 alert "back4app rocks!", 7 } 8 }, { 9 success function () { 10 // push was successful 11 response success("push sent"); 12 console log("success push sent"); 13 }, 14 error function (error) { 15 // push was unsucessful 16 response error("error with push " + error); 17 console log("error " + error); 18 }, 19 usemasterkey true 20 }); 21 }) 4 télécharger vers le cloud code allez à votre application à site web back4app et cliquez sur tableau de bord tableau de bord trouvez le code cloud code cloud et cliquez sur fonctions et hébergement web fonctions et hébergement web cela ressemble à ceci 3\ téléchargez ou créez un nouveau fichier (vous pouvez également modifier le main js main js fichier directement dans le navigateur) ensuite, cliquez sur déployer déployer comme montré ici 5 appeler le code cloud depuis votre application ios ensuite, nous allons écrire du code pour appeler cette fonction cloud depuis votre application vous aurez besoin à la fois du simulateur et d'un appareil physique pour accomplir cette tâche vous appellerez la fonction cloud depuis votre application exécutée dans le simulateur et vous verrez la notification apparaître sur votre appareil physique votre appareil physique doit en fait être verrouillé avec l'écran de verrouillage activé pour voir la notification une notification n'apparaîtra pas à l'écran si vous êtes à l'intérieur de l'application qui l'envoie lorsque vous recevez la notification ouvrez le fichier viewcontroller m de votre projet nous devons inclure parse dans le contrôleur de vue en ajoutant le code suivant ‘#import \<parse/parse h>’ en haut du fichier viewcontroller 3\ ensuite, dans le fichier viewcontroller m, nous allons appeler une fonction d'alerte depuis la méthode viewdidappear l'alerte vous permettra de déclencher le code cloud qui enverra une notification à votre appareil assurez vous d'inclure le bloc de code suivant après la fonction viewdidload viewcontroller m 4\ exécutez votre application dans le simulateur et lorsque l'alerte demandant d'envoyer la notification push apparaît, appuyez sur “ok” sur votre appareil physique, vous devriez voir la notification apparaître sur l'écran de verrouillage 6 appeler le code cloud depuis l'api rest l'api rest fournit un moyen rapide et facile de tester si votre fonction cloud fonctionne utilisez simplement le code ci dessous dans votre terminal ou invite de commande cliquez sur pour en savoir plus sur la façon de commencer avec la ligne de commande dans linux , macos ou windows pour tester les notifications push, utilisez simplement le code rest pendant que l'appareil est éteint 7 envoyer des notifications push ciblées en utilisant un objet utilisateur à l'avenir, nous utiliserons un projet ios différent qui a déjà des fonctionnalités de base pour l'inscription et la connexion nous allons utiliser ce projet ios que nous pouvons vous montrer comment détecter si un utilisateur est connecté, et si c'est le cas, enregistrer son installation avec un lien vers son identifiant d'objet pour les requêtes dans le code cloud vous pouvez télécharger le projet ios complet construit avec le tutoriel de cette section sur notre dépôt github , mais vous devrez toujours effectuer toute la configuration du tutoriel précédent qui explique comment envoyer des notifications depuis le tableau de bord back4app obtenez la nouvelle version de l'application, configurez la et inscrivez vous ou connectez vous à l'application tout d'abord, assurez vous de télécharger le modèle fonctionnel depuis github à dépôt github nous n'allons pas passer en revue toutes les étapes de la construction de cette application, mais nous allons nous concentrer sur la configuration du code cloud et pourquoi cela fonctionne une fois que vous ouvrez cette nouvelle application, assurez vous de mettre les identifiants de votre propre application dans le fichier appdelegate m appdelegate m 2\ cette application présente des différences majeures par rapport à l'application précédente elle comporte 2 sections, une pour être connecté à votre application et une section lorsque vous n'êtes pas connecté à votre application le prochain grand changement est la fonction ‘didregisterforremotenotificationswithdevicetoken’ du fichier appdelegate m nous avons ajouté 1 ligne qui stocke l'identifiant d'objet de l'utilisateur comme partie de l'objet d'installation de cette façon, nous pouvons savoir quel utilisateur est associé à quel objet d'installation et pouvons les cibler individuellement pour les notifications appdelegate m 3\ puisque nous stockons maintenant l'identifiant de l'objet de l'utilisateur comme partie de l'objet d'installation, nous ne voulons pas demander un nouveau jeton de notification push tant que l'utilisateur n'est pas connecté nous ne voulons pas demander un jeton directement à partir de la fonction ‘application didfinishlaunchingwithoptions’ du fichier appdelegate m, mais plutôt l'appeler à partir de la fonction ‘viewdidappear’ du loggedinviewcontroller dans ‘viewdidappear’, nous appelons une fonction sur l'appdelegate pour demander l'accès à un jeton de notification push d'apple puisque vous ne pouvez voir cette section qu'une fois connecté, nous pouvons supposer que l'utilisateur est connecté lorsque nous créons l'objet d'installation et récupérons l'identifiant de l'objet loggedinviewcontroller appdelegate m 4\ d'accord, maintenant pour s'inscrire ou se connecter sur votre appareil physique (iphone ou ipad) démarrez l'application vous devriez voir l'image ci dessous vous devriez vous inscrire pour créer un nouvel utilisateur ou vous connecter si vous avez déjà créé un utilisateur sur votre application voici à quoi cela ressemblera vous devriez maintenant être en mesure de voir le loggedinviewcontroller cela devrait ressembler à ceci si vous essayez d'envoyer des notifications à vous même, cela ne fonctionnera pas encore car nous n'avons pas ajouté ces méthodes au code cloud c'est donc ce que nous allons faire ensuite 8 ajouter les méthodes de notification ciblées au code cloud ouvrez votre fichier main js que vous avez créé précédemment et ajoutez les fonctions suivantes pour cibler les installations par identifiant d'utilisateur il est nécessaire d'utiliser la clé maître dans cette opération le code suivant exécute ces étapes parse server 3 x // main js 1 parse cloud define('sendpushtoyourself', (request) => { 2 let userid = request user id; 3 4 let query = new parse query(parse installation); 5 query equalto("userid", userid); 6 query descending("updatedat"); 7 return parse push send({ 8 where query, 9 data { 10 title "hello from the cloud code", 11 alert "back4app rocks! single message!", 12 } 13 }, { usemasterkey true }); 14 }); 15 16 parse cloud define('sendpushtoallusers', (request) => { 17 let currentuser = request user; 18 let userids = \[currentuser id]; 19 20 let query = new parse query(parse installation); 21 query containedin('userid', userids); 22 return parse push send({ 23 where query, 24 data { 25 title "hello from the cloud code", 26 alert "back4app rocks! group message!", 27 } 28 }, { usemasterkey true }); 29 }); parse server 2 x //main js 1 parse cloud define('sendpushtoyourself', function (request, response) { 2 var currentuser = request user; 3 var userid = currentuser id; 4 5 var query = new parse query("installation"); 6 query equalto("userid", userid); 7 query descending("updatedat"); 8 parse push send({ 9 where query, 10 data { 11 title "hello from the cloud code", 12 alert "back4app rocks! single message!", 13 } 14 }, { 15 usemasterkey true, 16 success function () { 17 response success("success sending a single push!"); 18 }, 19 error function (error) { 20 response error(error code + " " + error description); 21 } 22 }); 23 }); 24 25 parse cloud define('sendpushtoallusers', function (request, response) { 26 var currentuser = request user; 27 var userids = \[currentuser id]; 28 29 var query = new parse query(parse installation); 30 query containedin('userid', userids); 31 parse push send({ 32 where query, 33 data { 34 title "hello from the cloud code", 35 alert "back4app rocks! group message!", 36 } 37 }, { 38 usemasterkey true, 39 success function () { 40 response success('success sending a group push!'); 41 }, 42 error function (message) { 43 response error(error code + " " + error description); 44 } 45 }); 46 }); 9 télécharger vers cloud code allez à votre application sur le site web de back4app et cliquez sur tableau de bord tableau de bord trouvez le code cloud code cloud et cliquez sur fonctions et hébergement web fonctions et hébergement web cela ressemble à ceci 3\ téléchargez ou créez un nouveau fichier (vous pouvez également modifier le main js main js fichier directement dans le navigateur) ensuite, cliquez sur déployer déployer comme indiqué ici 10 testez que vous pouvez envoyer des notifications push ciblées à vous même ouvrez votre application depuis le simulateur tout en laissant votre appareil physique fermé avec l'écran de verrouillage activé vous pouvez tester que les deux fonctions push fonctionnent en appuyant sur le bouton ‘envoyer une notification push à vous même’ et le bouton ‘envoyer une notification push à un groupe de personnes’ vous devriez voir les notifications apparaître sur l'écran de verrouillage de vos appareils réflexions finales cela conclut le tutoriel vous devriez avoir une bonne compréhension de la façon d'envoyer des notifications push en fonction du canal d'un utilisateur ou de l'identifiant d'objet d'un utilisateur ou de toute autre requête impliquant l'obtention de l'identifiant d'objet de l'utilisateur n'oubliez pas que pour stocker l'identifiant d'objet de l'utilisateur, vous devez l'ajouter à l'installation push et ne demander un jeton push que lorsque l'utilisateur est connecté lors de l'envoi de notifications push via requête, sachez qu'il est limité par défaut à 100 résultats et que certains utilisateurs peuvent avoir plus d'un objet d'installation il n'est également pas recommandé d'envoyer des notifications push à un tableau d'objets d'installation qui sont plus de 100 résultats cela pourrait entraîner l'absence d'envoi de certaines notifications si vous traitez avec de grands groupes de personnes, il est préférable d'utiliser des canaux ou d'envoyer les notifications en demandes répétées c'est fait ! à ce stade, vous pouvez envoyer des notifications push en utilisant cloud code via back4app ! félicitations !