Implementieren von Push-Benachrichtigungen in Ihrer App
Vor einigen Jahren entstanden Dienste, die die Einfachheit typischer Pub / Sub-Systeme für Push-Benachrichtigungen ermöglichten. Anstatt die Telefon-IDs Ihrer Benutzer manuell einzeln verfolgen zu müssen, können Sie mit diesen Diensten Ihre Benutzer einfach für die gewünschten Kanäle abonnieren, um Push-Benachrichtigungen zu erhalten.
Wenn ein Benutzer beispielsweise benachrichtigt werden möchte, wenn ein Kurs zu Javascript auf Thinkster veröffentlicht wird, können wir ihn für einen Kanal namens „javascript“ abonnieren, den Tausende anderer Benutzer ebenfalls abonnieren können. Um jedoch eine Push-Benachrichtigung für alle diese Benutzer auszulösen, wäre nur eine Codezeile erforderlich – veröffentlichen Sie einfach eine Push-Benachrichtigung im „Javascript“ -Kanal und alle unsere Benutzer erhalten sie. Vergleichen Sie dies mit dem Abfragen Ihrer Datenbank, die die Telefon-IDs Ihres Benutzers enthält, dem Segmentieren, welche Benutzer über Javascript benachrichtigt werden sollen, und dem Senden von Benachrichtigungen für jeden Benutzer einzeln an APNS / GCM. Igitt!
Es gibt einige Dienste, die diese Pub / Sub-Funktionalität bereitstellen, aber zu diesem Zeitpunkt empfehlen wir dringend, Parse für die Verwaltung Ihrer Push-Benachrichtigungen zu verwenden. Hier ist der Grund: – Es ist weit verbreitet und kampferprobt durch die Verwendung in über 100.000 Apps – Es ist kostenlos, eine unbegrenzte Anzahl von Push-Benachrichtigungen zu senden, solange Sie < 1 Million Benutzer haben (!!!- Ihre Plugins und API sind wahnsinnig einfach zu bedienen
Wir werden später in diesem Kurs einen Überblick über ein paar andere Dienste geben, die Ihnen zur Verfügung stehen, aber im Allgemeinen ist das Setup für diese verschiedenen Dienste sehr ähnlich!
Vorbereiten Ihrer Umgebung
Das andere, was Sie bei der Entwicklung für iOS wissen müssen, ist, dass Sie von Apple keine Push-Benachrichtigungen an Apps senden können, die im Emulator ausgeführt werden. Wenn Ihre App erstellt ist, müssen Sie Ihre App auf ein reales Gerät laden, um sicherzustellen, dass Push-Benachrichtigungen tatsächlich empfangen werden.
Parse einrichten
Damit dieses Projekt speziell für Ihre App funktioniert, müssen wir Ihre eindeutigen Schlüssel und Bezeichner austauschen:
Zu diesem Zeitpunkt sollte Ihr Projekt ausführbar sein! Es gibt wirklich nur zwei Dinge, die Sie aufrufen müssen, wenn Sie Parse verwenden: initialize
, wodurch sichergestellt wird, dass dieses Gerät für Push-Benachrichtigungen registriert ist, und subscribe
, wodurch dieses bestimmte Telefon für jeden von Ihnen bereitgestellten Kanal abonniert wird. Es gibt auch eine dritte Methode getInstallationId
, die die Installations-ID dieses Parse-Benutzers zurückgibt, aber es ist nur nützlich, wenn Sie tief in einige der erweiterten Funktionen von Parse eintauchen.
Nehmen wir uns einen kurzen Moment Zeit, um den Code zu überprüfen, der unsere App mit Parse in verbindet 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.'); });
Dies ist nicht besonders komplex anzusehen, aber beachten Sie, dass es ausgeführt wird, nachdem alle Cordova-Apps in $ionicPlatform.ready
geladen wurden. Dies ist wichtig, da wir keine window.parse
-Methoden aufrufen möchten, wenn das Parse-Plugin noch nicht verfügbar ist! Eine andere Sache zu beachten ist, dass dieser Code jedes Mal ausgelöst wird, wenn die App geöffnet wird. Sie können initialize
und subscribe
so oft zum selben Kanal aufrufen, wie Sie möchten, ohne dass dies Auswirkungen auf den Benutzer, Ihr Parse-Konto oder APNS / GCM hat. Tatsächlich ist es wahrscheinlich am besten, wenn Sie dies tun, um sicherzustellen, dass der Benutzer Push-Benachrichtigungen für Ihre App seit der letzten Verwendung nicht versehentlich deaktiviert hat.
Da diese App jetzt den Analysekanal ‚SampleChannel‘ abonniert hat, können wir jetzt Push-Benachrichtigungen an sie senden. Wie im obigen Video zu sehen ist, können Sie dies über das Parse Push-Dashboard tun, indem Sie ‚SampleChannel‘ als Ziel angeben. Wenn Sie jedoch eine produktionsbereite Anwendung erstellen, möchten Sie wahrscheinlich Push-Benachrichtigungen programmgesteuert von Ihrem Server über die REST-API von Parse senden.
Das Senden von Push-Benachrichtigungen über Kanäle eignet sich nicht nur für Benutzergruppen, sondern auch für einzelne Benutzer. Sie können beispielsweise programmgesteuert eindeutige Kanäle für jeden einzelnen Ihrer Benutzer erstellen, indem Sie sie einfach einem Kanal abonnieren, an dessen Ende ihre Benutzer-ID angehängt ist (z. B. window.parsePlugin.subscribe('thinkster-user-' + userID)
). Selbst wenn sich Ihre Benutzer auf neuen Geräten anmelden, können Sie ihnen weiterhin Push-Benachrichtigungen senden, indem Sie nur ihre Benutzer-ID kennen!