2015-01-17 19 views
10

Ho un'app di messaggistica costruita utilizzando il framework Ionic (su cordova). Ho intenzione di creare questo per Android, e mi piacerebbe un modo per inviare e ricevere notifiche push dall'app utilizzando javascript/ionic.Come inviare/ricevere notifiche push dall'app ionica per dispositivi mobili?

Ci sono dei buoni tutorial su come fare per impostare qualcosa di simile?

+0

se si vuole, è possibile fare riferimento alla più recente post sul blog dal devgirl , http://devgirl.org/2014/12/16/push-notifications-sample-app-with-ionic-and-ngcordova/ –

risposta

11

C'è lo example application messo a disposizione da Holly Schinsky. Il nucleo di questo è l'uso di PushPlugin, che è il metodo standard per gestire le notifiche push su Cordova. C'è un tutorial abbastanza esteso per questo argomento sulla loro documentazione su quel repository GitHub. Il metodo principale è pushNotification.register che registra il dispositivo per l'ascolto delle notifiche push.

Se invece è necessario attivare la notifica in locale, è possibile dare un'occhiata a Local notification plugin. Con esso è possibile aggiungere notifiche da mostrare sul dispositivo senza la necessità di servizi esterni per inviare le notifiche push.

4

Utilizzare questo plug-in https://github.com/phonegap-build/PushPlugin.

I dispositivi Android ricevono notifiche push tramite il servizio Google Cloud Messaging (GCM), mentre i dispositivi iOS li ricevono dal servizio Apple Push Notifications (APN).

Il modo in cui le notifiche vengono ricevute (tramite audio, avviso ecc.) È una combinazione delle opzioni impostate nel codice dell'applicazione al momento della registrazione e delle impostazioni del dispositivo dell'utente per le notifiche.

Se volete seguire più preciso sotto tutorial:

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

2

L'ultimo phonegap-plugin-push consente di registrare e ricevere notifiche push nelle app ioniche. Si è mantenuta al seguente link Github:

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

Installazione:

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

Se le XXXXXXX in SENDER_ID="XXXXXXX" mappe per il numero di progetto nel Google Developer Console. Per trovare il numero del progetto accedi alla Google Developer Console, seleziona il tuo progetto e fai clic sulla voce di menu nella schermata qui sotto per visualizzare il numero del tuo progetto.

zzns8

Se non si sta creando un'applicazione Android si può mettere in qualsiasi cosa per questo valore.

Nota: potrebbe essere necessario specificare la variabile SENDER_ID nel pacchetto package.json.

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

Nota: È necessario specificare la variabile SENDER_ID nella vostra configurazione.xml se pianifichi di installare/ripristinare i plugin usando il metodo di preparazione. Il metodo di preparazione salterà altrimenti l'installazione del plugin.

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

Dopo l'installazione si può ora aggiungere il codice qui sotto al tuo principale file javascript per registrare e ricevere le notifiche 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); 
      }); 
      } 
     }); 
     } 
    } 
+0

Come iniettare questo, perché provo ma mi mostra un errore, come '.init è non definito' –

+0

@Pedro Miguel Pimienta Morales riceve l'errore ".init non è definito" sul browser o sul dispositivo. Il plugin funzionerà solo sul dispositivo. Per interrompere la ricezione di un errore nel browser, è possibile includere la chiamata nella condizione 'if (window.cordova) {}'. –

+0

che è necesario '" locator ":" phonegap-plugin-push "' –