web-dev-qa-db-fra.com

Comment envoyer / recevoir des notifications Push à partir de l'application mobile ionic?

J'ai une application de messagerie construite à l'aide du cadre Ionic (sur cordova). Je prévois de le construire pour Android, et je voudrais un moyen d'envoyer et de recevoir des notifications Push de l'application en utilisant javascript /ionique.

Y a-t-il de bons tutoriels sur la façon de configurer quelque chose comme ça?

12
johncorser

Il y a exemple d'application mis à disposition par Holly Schinsky. Le cœur de celui-ci est l'utilisation de PushPlugin qui est la méthode standard pour gérer les notifications Push sur Cordova. Un didacticiel assez complet est fourni pour ce sujet dans leur documentation sur ce référentiel GitHub. La méthode principale est pushNotification.register qui enregistre l'appareil pour écouter les notifications Push.

Si vous devez plutôt déclencher une notification localement, vous voudrez peut-être jeter un œil à Plugin de notification local à la place. Avec lui, vous pouvez ajouter des notifications à afficher sur l'appareil sans avoir besoin de services externes pour envoyer les notifications Push.

14
Roope Hakulinen

Utilisez ce plugin https://github.com/phonegap-build/PushPlugin .

Les appareils Android reçoivent des notifications Push via le service Google Cloud Messaging (GCM), tandis que les appareils iOS les reçoivent du service Apple Notifications push (APN)).

La façon dont les notifications sont reçues (par le son, l'alerte, etc.) est une combinaison des options définies dans le code d'application lors de l'enregistrement ainsi que les paramètres de l'appareil de l'utilisateur pour les notifications.

Si vous voulez plus de détails, suivez le tutoriel ci-dessous:

http://devgirl.org/2013/07/17/tutorial-implement-Push-notifications-in-your-phonegap-application/

5
RockStar

ngCordova a un plugin qui prend en charge les notifications push. Il a un exemple de code pour iOS et Android. Découvrez-le: http://ngcordova.com/docs/plugins/pushNotifications/

2
Kunal Nagar

Le dernier plugin phonegap-plugin-Push vous permet de vous inscrire et de recevoir des notifications Push dans vos applications ionic. Il est maintenu sur le lien Github suivant:

https://github.com/phonegap/phonegap-plugin-Push

Installation:

cordova plugin add https://github.com/phonegap/phonegap-plugin-Push --variable SENDER_ID="XXXXXXX"

Où le XXXXXXX dans SENDER_ID="XXXXXXX" correspond au numéro de projet dans Google Developer Console . Pour trouver le numéro de projet, connectez-vous à la Google Developer Console, sélectionnez votre projet et cliquez sur l'élément de menu dans la capture d'écran ci-dessous pour afficher votre numéro de projet.

zzns8

Si vous ne créez pas d'application Android Android, vous pouvez mettre n'importe quoi pour cette valeur.

Remarque: vous devrez peut-être spécifier la variable SENDER_ID dans votre package.json.

"cordovaPlugins": [
    {
      "variables": {
        "SENDER_ID": "XXXXXXX"
      },
      "locator": "phonegap-plugin-Push"
    }
  ]

Remarque: Vous devez spécifier la variable SENDER_ID dans votre config.xml si vous prévoyez d'installer/restaurer des plug-ins à l'aide de la méthode prepare. Sinon, la méthode prepare sautera l'installation du plugin.

<plugin name="phonegap-plugin-Push" spec="1.6.0">
    <param name="SENDER_ID" value="XXXXXXX" />
</plugin>

Après l'installation, vous pouvez maintenant ajouter du code ci-dessous à votre fichier javascript principal pour vous inscrire et recevoir des notifications Push:

    $ionicPlatform.ready(function () {

         var Push = PushNotification.init({
           Android: {
             senderID: "XXXXXXX"//, //project token number (12 digit) from https://console.developers.google.com
             // forceShow: "true", //force show Push notification when app is in foreground on Android only.
           },
           browser: {
             pushServiceURL: 'http://Push.api.phonegap.com/v1/Push'
           },
           ios: {
             /*senderID: "XXXXXXX",*/ //If using GCM for ios, project token number (12 digit) from https://console.developers.google.com
             /*gcmSandbox: 'true',*/ //If using GCM for ios
             alert: 'true',
             badge: 'true',
             sound: 'true',
           },
           windows: {}
         });

         PushNotification.hasPermission(function (permissionResult) {
           if (permissionResult.isEnabled) {
             $log.debug("has permission for Push notification");

             /*Register device with GCM/APNs*/
             Push.on('registration', function (data) {
               // data.registrationId
               $log.debug("data.registrationId: " + data.registrationId);          
             });

             Push.on('notification', function (data) {
               // data.message,
               // data.title,
               // data.count,
               // data.sound,
               // data.image,
               // data.additionalData
               $log.debug(JSON.stringify(data));
             });

             Push.on('error', function (e) {
               // e.message
               $log.debug("e.message: " + e.message);
               //alert(e.message);
             });
           }
         });
       }
     }
2
Ian Pinto