8

Sto cercando di implementare le notifiche push con Ionic e sono abbastanza confuso. Fino ad ora, ho provato le seguenti alternative senza successo:Notifiche push con Ionic Framework

ionico push

sembra essere la soluzione migliore. "Simula" le notifiche nel browser rendendo facile il test. Ci sono due versioni:

  1. Versione 1.0: i documenti sono avaiable a http://docs.ionic.io/v1.0/docs/push-overview. La pagina visualizza un avviso in fondo che dice di controllare l'ultima versione (2.0beta). Se tengo la pagina e provo a seguire le istruzioni, tutto sembra funzionare correttamente, ma se invio la push a https://push.ionic.io/api/v1/push non arriva nessun messaggio. Guardando a firebug ho scoperto che $ ionicPush sta interrogando l'API 2.0alpha invece di interrogare l'API 1.0.

  2. Versione 2.0: i documenti sono disponibili allo http://docs.ionic.io/docs/push-overview. È molto simile a 1.0 e funziona bene in browser, Android (sviluppo e produzione) e ambienti di sviluppo iOS. Ma non riesco a ottenere messaggi sulla produzione IOS (dopo aver pubblicato l'app per l'archiviazione). Ho cercato a fondo una soluzione, ma ho trovato alcune risposte dicendo che è alfa e non dovrebbe essere usato.

Quindi, se la versione 1.0 non esiste (che utilizza l'API v2.0) e v2.0 è alfa e non deve essere utilizzato, conclusi ionico di spinta non può essere utilizzato.

Domanda 1: è possibile utilizzare ionic push per inviare notifiche a iOS e Android?

Domanda 2: utilizzando l'installazione 2.0, posso inviare messaggi con Apns PHP anziché Ionic Push?

Cordova PhoneGap Plugin Spingere

Questo plugin viene utilizzato da ionico spinta dietro le quinte credo. Ma non riesco a capire come usarlo. I tutorial e i documenti che ho trovato sono obsoleti e fanno riferimento a una versione deprecata (https://github.com/phonegap-build/PushPlugin.git). Anche ngCordova fa riferimento a questa versione deprecata (http://ngcordova.com/docs/plugins/pushNotifications/). ngCordova suggerisce anche Ionic Push. Non riesco a trovare un esempio completo che mostri come utilizzare https://github.com/phonegap/phonegap-plugin-push con ionico.

Domanda 3: come impostare Cordova Phonegap Plugin Push con ionico?

+1

https://devdactic.com/ionic-push-notifications/ e https://devdactic.com/android-push-notifications/questo tutorial ti aiuterà a lavorare per me. –

+1

Questo tutorial funziona anche per me. Ma loro non si rivolgono a iOS, che è esattamente dove sto avendo problemi. –

+0

https://github.com/RigelM/ionic_push/blob/master/Notification.txt –

risposta

1

sono stato in grado di inviare/ricevere le notifiche push su IOS e Android con ionico 1 utilizzando Google Firebase e https://github.com/arnesson/cordova-plugin-firebase/. A seguito di quello che ho fatto:

  1. creati i profili di provisioning DEV/PROD su developer.apple.com. Controllato i miei certificati sviluppatore/team durante la creazione dei profili di provisioning.
  2. Creato i certificati DEV/PROD APS su developer.apple.com.
  3. Certificati per sviluppatori/team installati sulla macchina di sviluppo.
  4. Certificati APS DEV/PROD installati sulla macchina di sviluppo.
  5. Profili provisionig installati sulla macchina di sviluppo.
  6. Plugin installato con "plugin cordova aggiungi [email protected]".
  7. codice Aggiunto alla mia app:

    window.FirebasePlugin.grantPermission(); window.FirebasePlugin.getInstanceId ( funzione (token) { thiss.saveToken (token); }, funzione (errore) { console.log (errore); } );

    window.FirebasePlugin.onNotificationOpen ( funzione (notifica) {
    // alert ("Yeahh!");} , funzione (errore) {// alert (" Error ");} );.

  8. Creato Google GCM/Google Firebase account

  9. aggiunto il mio app per Firebase con iOS/piattaforme Android.
  10. certificati Aggiunto APS alla sezione delle impostazioni del progetto Firebase.
  11. scaricato GoogleService-Info.plist e google-service.json e li mise nella mia cartella app radice "cloud Messaging".
  12. Corporatura edita l'app.
  13. Solo IOS: in XCode abilitato "Notifiche push" e "Modalità in background: Ricevi notifiche".

per inviare la notifica Io uso il seguente script php:

$data = Array 
(
    [to] => <token> 
    [priority] => high 
    [notification] => Array 
     (
      [title] => My Title 
      [text] => Notification test 
      [sound] => default 
      [vibrate] => 1 
      [badge] => 0 
     ) 

) 

$jsonData = json_encode($data); 
$ch  = curl_init("https://fcm.googleapis.com/fcm/send"); 
$header = array(
    'Content-Type: application/json', 
    "Authorization: key=".$gcmApiKey 
); 

curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 

curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); 

$result = curl_exec($ch); 
curl_close($ch); 

echo $result; 
+0

Ciao @ArivanBastos Ho il mio Android ionico compilare sia l'invio e la ricezione di notifiche e il mio build iOS ricevere notifiche ma non riesco a inviare. Voglio solo chiarire qualcosa. Metti sia GoogleService-Info.plist che google-service.json nella radice del tuo progetto ionico? O ciascuno nei rispettivi 'piattaforme/ios' e' piattaforme/android'? –

+0

Nella radice. Il plugin sposta i file nella posizione corretta durante la creazione. Cosa intendi con la tua app può ricevere ma non inviare? Stai ricevendo errori quando esegui lo script php per inviare messaggi push al dispositivo? –

+0

Grazie. L'ho installato nella radice del mio progetto XCode ieri e la build lo ha inserito nella radice di 'platforms/ios' ieri. Questo non l'ha risolto Proverò la radice del mio progetto ionico. –

1

non ho usato ionico spinta ancora, quindi posso solo cercare di rispondere alla tua terza domanda.

In realtà credo che gli esempi nella pagina dei plugin GitHub sono piuttosto buone, quindi sono di riferimento andando quelli. Se avete ulteriori domande, sentitevi liberi di commentare e io lo approfondirò.

Per iniziare, includere example script nel file index.html all'interno di un callback deviceready e inizializzare il plug-in con le impostazioni. Nel gestore dell'evento di registrazione, si ottiene l'ID del dispositivo dell'utente corrente tramite data.registrationId che è possibile salvare nel proprio database.

Per inviare effettivamente messaggi push, utilizzo node-gcm (Android) e apnagent (iOS) lato server.Ci sono anche alcuni buoni esempi almeno per Android su plugin page.

+0

Grazie. Ho provato a utilizzare lo script di esempio, ma ottengo un errore "PushNotification undefined". Così ho pensato che sarebbe stato necessario includere il file "www/push.js" nel mio index.html, ma non ne sono sicuro. Puoi mostrare un esempio completo? –

+1

@ArivanBastos No, non è necessario includere alcuna fonte di plugin, questo viene fatto automaticamente da Cordova. Hai incluso '' nel tuo index.html? – kolli

+0

Sì, l'ho fatto! Ma ottengo l'errore "indefinito" quando si esegue l'applicazione nel browser. Questo ha senso dal momento che la notifica push non sarà disponibile nel browser, ma fino ad ora non avevo riscontrato errori del browser durante lo sviluppo di app ioniche, anche quando si utilizzavano componenti nativi. Proverò di nuovo l'esempio, grazie! –

4

Domanda 1: è possibile utilizzare ionic push per inviare notifiche a iOS e Android?

Di sicuro! È necessario disporre di un account sulla piattaforma Ionic.io e seguire alcuni passaggi per aggiungere i certificati. Le guide che ho inizialmente scritto sono già collegate nella risposta alla tua domanda, ma sono per la versione 1.0.

Domanda 2: utilizzando l'installazione 2.0, è possibile inviare messaggi con Apns PHP anziché Ionic Push?

Sei sempre libero di come vuoi inviare le tue Push. Ionic.io rende la vita molto più semplice avendo i tuoi certificati memorizzati lì. Si potrebbe ad esempio utilizzare gli esempi CURL che forniscono, quindi è sufficiente fare una richiesta POST dal server PHP per il server Ionic.io per creare una notifica push

Domanda 3: come impostazione Cordova PhoneGap Plugin Spingere con ionica ?

Ho recentemente pubblicato un complete guide for the new 2.0 version of Ionic Push dove descrivo il processo per iOS e Android!

+0

Ciao @ saimon24, mi chiedo se non intendesse, come faccio a impostare il plug-in Cordova phonegap all'interno di un progetto ionico, senza usare il comando ionico ? Questo è il problema che sto affrontando attualmente. – IonicBurger

+0

@simon Come lo faresti in una intranet? Hai un altro articolo su questo? – Mukus