Implementazione di notifiche push nella tua app
Un paio di anni fa, i servizi hanno iniziato ad emergere che hanno portato la semplicità dei tipici sistemi pub/sub alle notifiche push. Invece di dover monitorare manualmente gli ID del telefono dell’utente singolarmente, questi servizi consentono di sottoscrivere semplicemente gli utenti ai canali desiderati per ricevere notifiche push da.
Ad esempio, se un utente desidera essere avvisato quando un corso su Javascript viene pubblicato su Thinkster, potremmo iscriverlo a un canale chiamato “javascript” a cui potrebbero essere iscritti anche migliaia di altri utenti. Tuttavia, per attivare una notifica push a tutti questi utenti richiederebbe solo una riga di codice: basta pubblicare una notifica push sul canale “javascript” e tutti i nostri utenti la riceveranno. Confrontalo con l’interrogazione del tuo database che contiene gli ID telefonici dell’utente, segmentando gli utenti che desiderano ricevere una notifica su Javascript e quindi inviando notifiche individualmente per ciascuno di essi a APN/GCM. Bleah!
Ci sono alcuni servizi là fuori che forniscono questa funzionalità pub/sub, ma a questo punto nel tempo, consigliamo vivamente di utilizzare Parse per gestire le notifiche push. Ecco perché: – E ‘ampiamente adottato e battaglia indurito da utilizzo attraverso 100.000 + applicazioni-E’ libero di inviare un numero illimitato di notifiche push fino a quando si dispone di < 1 milione di utenti (!!!) registrati sulla tua app( dopo di che devi pagare un misero cinque centesimi per mille utenti aggiuntivi) – I loro plugin e API sono follemente facili da usare
Faremo una panoramica di un paio di altri servizi disponibili in seguito in questo corso, ma in generale la configurazione di questi vari servizi è molto simile!
Preparazione del tuo ambiente
L’altra cosa che devi sapere quando sviluppi per iOS è che Apple non ti consente di inviare notifiche push alle app in esecuzione nell’emulatore; devi usare un dispositivo reale. Ti consigliamo di testare tutte le funzioni che la notifica push invocherà nell’emulatore, quindi quando la tua app è stata creata dovrai caricare la tua app su un dispositivo reale per assicurarti che le notifiche push vengano effettivamente ricevute.
Impostazione di Parse
Per far funzionare questo progetto specificamente per la tua app, dobbiamo scambiare le tue chiavi e identificatori univoci:
A questo punto, il tuo progetto dovrebbe essere eseguibile! Ci sono davvero solo due cose che devi chiamare quando usi Parse: initialize
, che garantisce che questo dispositivo sia registrato per le notifiche push e subscribe
, che sottoscriverà questo telefono specifico a qualsiasi canale fornito. C’è anche un terzo metodo getInstallationId
che restituirà l’ID di installazione di questo utente Parse, ma è utile solo se si sta immergendo in profondità in alcune delle funzionalità più avanzate di Parse.
Consente di prendere un momento veloce per rivedere il codice che collega la nostra applicazione per analizzare in 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.'); });
Questo non è terribilmente complesso da guardare, ma si noti che viene eseguito dopo che tutte le app Cordova sono state caricate in $ionicPlatform.ready
. Questo è importante, poiché non vogliamo chiamare metodi window.parse
se il plug-in Parse non è ancora disponibile! Un’altra cosa da notare è che questo codice verrà licenziato ogni volta che viene aperta l’app. Puoi chiamare initialize
e subscribe
sullo stesso canale tutte le volte che vuoi senza che ciò influenzi l’utente, il tuo account Parse o APN/GCM. In effetti, è probabilmente meglio farlo per garantire che l’utente non abbia disattivato accidentalmente le notifiche push per la tua app dall’ultima volta che l’ha utilizzata.
Dal momento che questa applicazione è ora iscritto al canale di analisi ‘SampleChannel’, che significa che ora possiamo inviare notifiche push ad esso. Come si vede nel video qui sopra, è possibile farlo attraverso il cruscotto Parse Push specificando ‘SampleChannel’ come destinazione. Tuttavia, se stai creando un’applicazione pronta per la produzione, probabilmente vorrai inviare notifiche push a livello di codice dal tuo server tramite l’API REST di Parse.
L’invio di notifiche push attraverso i canali non è solo ideale per gruppi di utenti, ma è anche possibile utilizzare if per singoli utenti. Ad esempio, puoi creare a livello di codice canali univoci per ogni singolo utente semplicemente iscrivendoli a un canale con il loro ID utente aggiunto alla fine di esso (cioè window.parsePlugin.subscribe('thinkster-user-' + userID)
). Anche se i tuoi utenti accedono a nuovi dispositivi, puoi continuare a inviare loro notifiche push semplicemente conoscendo il loro ID utente!