Absender Gcm Forex


Firebase Cloud Messaging (FCM) ist die neue Version von GCM. Es erbt die zuverlässige und skalierbare GCM-Infrastruktur sowie neue Funktionen. Wenn Sie Messaging in einer neuen App integrieren, starten Sie mit FCM. GCM-Benutzer werden dringend empfohlen, auf FCM zu aktualisieren, um von neuen FCM-Funktionen heute und in Zukunft profitieren zu können. Die Einrichtung ist ein GCM-Client App auf Android Ein Google Cloud Messaging (GCM) Android-Client eine Client-Anwendung, die auf einem Android-Gerät läuft. Um Ihren Client-Code zu schreiben, empfehlen wir Ihnen, die GoogleCloudMessaging API und das Android Studio mit Gradle zu verwenden. Hier sind die Voraussetzungen für einen GCM Android-Client ausgeführt wird: GCM erfordert Geräte mit Android 2.2 oder höher, das haben auch die Google Play Store-Anwendung installiert ist, oder ein Emulator Android 2.2 mit Google-APIs ausgeführt wird. Beachten Sie, dass Sie nicht auf die Bereitstellung Ihrer Android-Anwendungen über Google Play Store beschränkt sind. Allerdings, wenn Sie den Vorgang fortsetzen möchten neue GCM-Funktionen zu verwenden, die Dienstleistungen über Google Play verteilt werden, muss das Gerät mit Android 2.3 oder höher ausgeführt werden, oder können Sie einen Emulator verwenden Android 2.3 mit Google-APIs. Auf Android-Geräten verwendet GCM eine bestehende Verbindung für Google-Dienste. Für Pre-3.0-Geräte bedeutet dies, dass Benutzer ihre Google-Konten auf ihren mobilen Geräten einrichten müssen. Ein Google-Konto ist keine Voraussetzung für Geräte mit Android 4.0.4 oder höher. Eine vollständige GCM-Implementierung erfordert sowohl eine Clientimplementierung als auch eine Serverimplementierung. Weitere Informationen zur Implementierung der Serverseite finden Sie unter GCM Connection Server. In den folgenden Abschnitten finden Sie die Schritte zum Schreiben einer GCM-clientseitigen Anwendung auf Android. Zumindest muss ein GCM Client-Anwendung enthalten Code zu registrieren (und damit eine Registrierungstoken erhalten), und einen Empfänger auf Nachrichten von GCM gesendet empfangen. Für bestehende Apps, die einen WakefulBroadcastReceiver erweitern. Google empfiehlt die Migration zu GCMReceiver und GcmListenerService. So migrieren: In der App-Manifest, ersetzen Sie Ihre GcmBroadcastReceiver mit com. google. android. gms. gcm. GcmReceiver, und ersetzen Sie den aktuellen Service-Erklärung, dass IntentService zum neuen GcmListenerService Entfernen Sie die BroadcastReceiver Implementierung von Ihrem Client-Code Umgestalten der aktuelle IntentService Service erweitert Umsetzung GcmListenerService Einzelheiten zu verwenden, die beispielsweise manifestieren und Codebeispiele in diesem page. Create eine API-Projekt Neue Cloud-Messaging-Projekten finden Sie unter Firebase-Projekt in der Firebase Konsole erstellen müssen. In diesem Prozess, youll generieren eine Konfigurationsdatei und Anmeldeinformationen für Ihr Projekt. Erstellen Sie ein Firebase-Projekt in der Firebase-Konsole. Wenn Sie nicht bereits ein haben. Wenn Sie bereits ein Google-Projekt mit Ihrer mobilen App verknüpft haben, klicken Sie auf Google Project importieren. Klicken Sie andernfalls auf Neues Projekt erstellen. Klicken Sie auf Firebase zu Ihrer Android-App hinzufügen und befolgen Sie die Installationsschritte. Wenn Sie ein bestehendes Google-Projekt importieren, kann dies automatisch geschehen und Sie können die Konfigurationsdatei einfach herunterladen. Wenn Sie dazu aufgefordert werden, geben Sie Ihren Anwendungspaketnamen ein. Es ist wichtig, geben Sie den Paketnamen Ihrer App ist mit diesem kann nur festgelegt werden, wenn Sie eine App zu Ihrem Firebase-Projekt hinzufügen. Am Ende, youll laden Sie eine Google-services. json-Datei. Sie können diese Datei jederzeit wieder herunterladen. Wenn Sie das noch nicht getan haben, kopieren Sie es in Ihren Projektmodulordner, in der Regel App. Notieren Sie den Server-Schlüssel in Ihrem neuen Projekt unter Projekteinstellungen Cloud Messaging. Bewahren Sie diese Taste sicher auf Ihrem App-Server. Youll müssen sie nachgeschaltete Nachrichten an die Client-app senden. Add die Konfigurationsdatei zu Ihrem Projekt Das Google Services-Plugin für Gradle analysiert Konfigurationsinformationen aus der Datei "Google-services. json". Fügen Sie das Plugin zu Ihrem Projekt hinzu, indem Sie die Build. gradle-Dateien auf der obersten Ebene und die build. gradle-Dateien auf der App-Ebene wie folgt aktualisieren: Fügen Sie die Abhängigkeit zu Ihrem build. gradle auf Projektebene hinzu. Fügen Sie das Plugin zu Ihrem app-level build. gradle hinzu. Google Play-Dienste einrichten Um Ihre Clientanwendung zu schreiben, verwenden Sie die GoogleCloudMessaging-API. Um dieses API zu verwenden, müssen Sie Ihr Projekt so einrichten, dass es das Google Play-SDK verwendet, wie im Google Play-Dienste-SDK einrichten beschrieben. Wenn Sie die GCM Play Services-Bibliothek zu Ihrem Projekt hinzufügen, müssen Sie sie mit Ressourcen hinzufügen. Wie im Einrichten des Google Play Services SDK beschrieben. Der wichtigste Punkt ist, dass Sie die Bibliothekmdashsimply das Hinzufügen einer. jar-Datei auf Ihr Projekt verweisen muss, wird nicht funktionieren. Wenn Sie Android Studio verwenden, ist dies die Zeichenfolge, die dem Abschnitt "Abhängigkeiten" Ihrer build. gradle-Anwendungsdatei hinzugefügt werden soll: Dieses Beispiel zeigt, wie Sie auf die GCM-spezifische Bibliothek verweisen können, die die einzige Bibliothek ist, die die GCM-App-Entwicklung unterstützen muss. Verwenden Sie diese anstelle der umfassenden Play-Service-Bibliothek, und stellen Sie sicher, dass Sie auf die neueste Version verweisen. Bearbeiten Sie Ihr Anwendungsmanifest Fügen Sie Folgendes zu Ihrem Anwendungsmanifest hinzu: Ihre ltapplication-package-namegt quot. permission. C2DMESSAGEquot-Berechtigung, andere Android-Anwendungen daran zu hindern, die Android-Anwendungsnachrichten zu registrieren und zu empfangen. Der Name der Berechtigung muss genau mit diesem Muster übereinstimmen. Die Android-Anwendung wird die Nachrichten nicht empfangen. Eine Erklärung von GcmReceiver. Die die von GCM an Ihre Anwendung gesendeten Nachrichten verarbeitet. Da dieser Dienst die Berechtigung zum Empfangen von Nachrichten von GCM benötigt, fügen Sie dem Empfänger com. google. android. c2dm. permission. SEND hinzu. Eine Erklärung von GcmListenerService. Das verschiedene Aspekte der Handhabung von Nachrichten ermöglicht, wie zum Beispiel das Erfassen unterschiedlicher nachgeschalteter Nachrichtentypen, das Ermitteln des Status des Upstream-Sendens und das automatische Anzeigen einfacher Benachrichtigungen im App-Bereich. Ein Dienst, der InstanceIDListenerService erweitert. Um die Erstellung, Rotation und Aktualisierung von Registrierungsmarken zu bewältigen. Optional die Berechtigung android. permission. WAKELOCK, wenn die Anwendung den Prozessor beim Einschalten einer Nachricht schlafen soll. Wenn die GCM-Funktion für die Android-Anwendungsfunktion entscheidend ist, stellen Sie android: minSdkVersionquot8quot oder höher im Manifest ein. Dadurch wird sichergestellt, dass die Android-Anwendung nicht in einer Umgebung installiert werden kann, in der sie nicht ordnungsgemäß ausgeführt werden konnte. Hier ist ein Beispielmanifest, das GCM unterstützt: Wenn Sie Pre-4.4 KitKat-Geräte unterstützen möchten, fügen Sie der Intent-Filter-Deklaration für den Empfänger die folgende Aktion hinzu: ltaction android: namequotcom. google. android. c2dm. intent. REGISTRATIONquot gt Check for Google Play-Dienste APK-Apps, die auf dem Play Services-SDK basieren, sollten das Gerät immer vor dem Zugriff auf die Google Play-Dienste-Funktionen auf ein kompatibles Google Play-APK überprüfen. Es wird empfohlen, dies an zwei Stellen durchzuführen: in den Haupttätigkeiten auf der Methode "Create ()" und in der Methode onResume (). Der Check in onCreate () stellt sicher, dass die App nicht ohne erfolgreiche Überprüfung verwendet werden kann. Die Überprüfung in onResume () stellt sicher, dass, wenn der Benutzer auf die ausgeführte Anwendung zurückkehrt, auf anderem Wege, z. B. über die Schaltfläche "Zurück", die Überprüfung weiterhin ausgeführt wird. Wenn das Gerät keine kompatiblen Google Play-Dienste-APK besitzt, kann Ihre App GooglePlayServicesUtil. getErrorDialog () aufrufen, um es Benutzern zu ermöglichen, die APK aus dem Google Play Store herunterzuladen oder in den Geräte-Systemeinstellungen zu aktivieren. Ein Codebeispiel finden Sie unter Einrichten von Google Play Services SDK. Erhalten eines Registrierungs-Tokens Eine Android-Anwendung muss sich mit GCM-Verbindungsservern registrieren, bevor sie Nachrichten empfangen kann. Wenn eine App registriert wird, erhält sie ein Registrierungs-Token und sendet es an den App-Server. Die Client-Anwendung sollte einen booleschen Wert speichern, der angibt, ob das Registrierungs-Token an den Server gesendet wurde. Google stellt die Instanz-ID-API für die Erstellung und Aktualisierung von Registrierungs-Token bereit. Um diese API zu verwenden, schließen Sie InstanceIDListenerService in das Manifest ein: Um ein Token zu erhalten, rufen Sie instanceID. getToken an. Bereitstellen der Absender-ID des Anwendungsservers und Festlegen des Bereichs auf GoogleCloudMessaging. INSTANCEIDSCOPE. Verwenden Sie stattdessen einen Dienst, der IntentService wie folgt erweitert: Sobald Sie Ihr Registrierungs-Token erhalten haben, stellen Sie sicher, dass es an Ihren Server gesendet wird. Wenn das GCM-Registrierungs-Token aktualisiert wurde, verwenden Sie InstanceID. getToken (), um ein neues Registrierungs-Token zu erhalten, und dann das neue Token an den App-Server zu senden, wenn OnTokenRefresh aufgerufen wird, sollten die Listener-Dienste onTokenRefresh-Methode aufgerufen werden. Ausführliche Informationen zu dieser API finden Sie in der Instanz-ID-API-Referenz. GCM-Register () wurde veraltet. Verwenden Sie InstanceID, um allgemeine GCM-Registrierungsverwaltung durchzuführen. Nächste Schritte Sobald die Client-App verbunden ist, können Sie nachgeschaltete Nachrichten empfangen und nachgeschaltete Nachrichten senden. Weitere Informationen zu Ihren Optionen mit GCM finden Sie auch in den Handbüchern zur Themennachrichten - und Gerätegruppenmeldung sowie zu den Referenzinformationen für Client - und Server-APIs. Sofern nicht anders angegeben, ist der Inhalt dieser Seite unter der Creative Commons Attribution 3.0 Lizenz lizenziert. Und Code-Beispiele sind unter der Apache 2.0 Lizenz lizenziert. Weitere Informationen finden Sie in unseren Website-Richtlinien. Java ist ein eingetragenes Warenzeichen von Oracle und seinen Tochtergesellschaften. 23, 2016 Check out GCM-Videos auf YouTube Entdecken Sie unsere Beispiel-Apps oder fork sie, um Ihre eigenen Fragen stellen mit dem Google-Cloud-Messaging TagPush-Benachrichtigungen auf dem Open Web Matt ist ein Beitragende zu Web Fundamentals Warnung: Dieser Blog-Post ist immer ein ein bisschen alt. Wenn Sie mehr über die Implementierung von Push erfahren möchten, lesen Sie in unserer Web Push Notifications Dokumentation nach. Wenn Sie einen Raum von Entwicklern fragen, welche Funktionen des Mobilgeräts aus dem Internet fehlen, sind Push-Benachrichtigungen immer auf der Liste hoch. Push-Benachrichtigungen ermöglichen es Ihren Anwendern, sich zeitnah von den Websites, die sie lieben, zu entscheiden, und erlauben es Ihnen, sie mit benutzerdefinierten, ansprechenden Inhalten effektiv wieder einzubinden. Ab Chrome Version 42 sind die Push API und die Notification API für Entwickler verfügbar. Die Push-API in Chrome stützt sich auf ein paar verschiedene Teile der Technologie, einschließlich Web App Manifests und Service Workers. In diesem Beitrag gut schauen Sie sich jede dieser Technologien, aber nur das Minimum, um Push-Messaging auf und läuft. Um ein besseres Verständnis für einige der anderen Funktionen von Manifesten und die Offline-Fähigkeiten der Service-Mitarbeiter zu erhalten, lesen Sie bitte die obigen Links. Wir werden auch sehen, was in der API in zukünftigen Versionen von Chrome hinzugefügt werden, und schließlich haben auch eine FAQ. Implementieren von Push Messaging für Chrome Dieser Abschnitt beschreibt jeden Schritt, den Sie ausführen müssen, um Push-Messaging in Ihrer Web-App zu unterstützen. Registrieren eines Service-Workers Es besteht die Abhängigkeit von einem Service-Mitarbeiter, Push-Nachrichten für das Web zu implementieren. Der Grund hierfür ist, dass der Browser, wenn er eine Push-Nachricht empfängt, einen Service-Mitarbeiter starten kann, der im Hintergrund läuft, ohne dass eine Seite geöffnet ist, und ein Event absenden, so dass Sie entscheiden können, wie diese Push-Nachricht zu handhaben ist. Unten ist ein Beispiel dafür, wie Sie einen Service-Mitarbeiter in Ihrer Web-App registrieren. Wenn die Registrierung erfolgreich abgeschlossen wurde, wird initialiseState () aufgerufen. Die gut abdecken kurz. Der Button-Klick-Handler zeichnet den Benutzer ab, um Nachrichten zu schieben oder abzubrechen. IsPushEnabled ist eine globale Variable, die einfach verfolgt, ob Push-Messaging derzeit abonniert ist oder nicht. Diese werden in den Code-Snippets referenziert. Wir überprüfen dann, dass Service-Mitarbeiter vor der Registrierung der Datei service-worker. js unterstützt werden, die über die Logik zur Handhabung einer Push-Nachricht verfügt. Hier sagen wir dem Browser einfach, dass diese JavaScript-Datei der Service-Mitarbeiter für unsere Website ist. Einrichten des Anfangszustands Sobald der Service-Worker registriert ist, müssen wir unseren UIs-Status einrichten. Benutzer erwarten, eine einfache Benutzeroberfläche zu aktivieren oder deaktivieren Push-Nachrichten für Ihre Website, und sie erwarten, dass sie auf dem Laufenden über alle Änderungen, die auftreten. Mit anderen Worten, wenn sie aktivieren Push-Nachrichten für Ihre Website, verlassen und wieder eine Woche später, sollte Ihre Benutzeroberfläche hervorheben, dass Push-Nachrichten bereits aktiviert sind. In diesem Dokument finden Sie einige UX-Richtlinien. In diesem Artikel konzentrieren sich auf die technischen Aspekte. An diesem Punkt können Sie denken, es gibt nur zwei Staaten zu behandeln, aktiviert oder deaktiviert. Es gibt jedoch einige andere Staaten um Benachrichtigungen, die Sie berücksichtigen müssen. Es gibt eine Reihe von APIs, die wir überprüfen müssen, bevor wir unsere Schaltfläche aktivieren, und wenn alles unterstützt wird, können wir unsere Benutzeroberfläche aktivieren und den Anfangsstatus festlegen, um anzuzeigen, ob Push-Messaging abonniert ist oder nicht. Da die meisten dieser Überprüfungen dazu führen, dass unsere Benutzeroberfläche deaktiviert ist, sollten Sie den Anfangsstatus auf deaktiviert setzen. Dies vermeidet auch jegliche Verwirrung, sollte es ein Problem mit Ihren Seiten geben. JavaScript, zB die JS-Datei kann nicht heruntergeladen werden oder der Benutzer hat JavaScript deaktiviert. Mit diesem Anfangszustand können wir die oben in der Methode initialiseState () beschriebenen Kontrollen durchführen, d. H. Nachdem der Service-Mitarbeiter registriert ist. Ein kurzer Überblick über diese Schritte: Wir prüfen, ob showNotification im ServiceWorkerRegistration Prototyp zur Verfügung steht. Ohne sie können wir keine Benachrichtigung von unserem Service-Mitarbeiter anzeigen, wenn eine Push-Nachricht empfangen wird. Wir überprüfen, was die aktuelle Notification. permission ist, um sicherzustellen, dass seine nicht verweigert. Eine verweigerte Berechtigung bedeutet, dass Sie Benachrichtigungen nicht anzeigen können, bis der Benutzer die Berechtigung manuell im Browser ändert. Um zu überprüfen, ob Push-Messaging unterstützt wird, prüfen wir, ob PushManager im Fensterobjekt verfügbar ist. Schließlich haben wir pushManager. getSubscription () verwendet, um zu prüfen, ob wir bereits ein Abonnement haben oder nicht. Wenn wir dies tun, senden wir die Abonnementdetails an unseren Server, um sicherzustellen, dass wir die richtigen Informationen haben und unsere Benutzeroberfläche festlegen, dass Push-Messaging bereits aktiviert ist oder nicht. Nun schauen Sie, welche Details in der Subskription Objekt später in diesem Artikel. Wir warten, bis navigator. serviceWorker. ready aufgelöst ist, um nach einem Abonnement zu suchen und die Drucktaste zu aktivieren, da es erst nach dem Aktivieren des Service-Workers aktiv ist, dass Sie tatsächlich Nachrichten abschicken können. Der nächste Schritt ist zu handhaben, wenn der Benutzer Push-Nachrichten aktivieren möchte, aber bevor wir dies tun können, müssen wir ein Google Developer Console-Projekt einrichten und unserem Manifest einige Parameter hinzufügen, um Firebase Cloud Messaging (FCM) zu verwenden. Früher bekannt als Google Cloud Messaging (GCM). Machen Sie ein Projekt auf der Firebase Developer Console Chrome nutzt FCM, um das Senden und Liefern von Push-Nachrichten zu verarbeiten. Um jedoch die FCM-API zu verwenden, müssen Sie ein Projekt auf der Firebase Developer Console einrichten. Die folgenden Schritte sind spezifisch für Chrome, Opera für Android und Samsung Browser verwenden sie FCM. Nun diskutieren, wie dies funktionieren würde in anderen Browsern später in dem Artikel. Erstellen Sie ein neues Firebase Developer Project Um mit Ihnen zu beginnen, müssen Sie ein neues Projekt auf console. firebase. google erstellen, indem Sie auf das Create New Project klicken. Fügen Sie einen Projektnamen hinzu, erstellen Sie das Projekt und gelangen Sie zum Projekt-Dashboard: Klicken Sie in diesem Dashboard neben der Projektnum - mer oben links auf das Cog und klicken Sie auf Projekteinstellungen. Klicken Sie auf der Seite "Einstellungen" auf die Registerkarte "Cloud Messaging". Diese Seite enthält den API-Schlüssel für Push-Messaging, der später verwendet wird, und die Absender-ID, die wir im nächsten Abschnitt in die Web-App einfügen müssen. Hinzufügen eines Web-App-Manifests Für Push müssen wir eine Manifest-Datei mit einem gcmsenderid-Feld hinzufügen, um das Push-Abonnement erfolgreich zu erhalten. Dieser Parameter wird nur von Chrome, Opera für Android und Samsung Browser benötigt, damit sie FCM GCM verwenden können. Die gcmsenderid wird von diesen Browsern verwendet, wenn sie ein Benutzergerät mit FCM abonniert. Das bedeutet, dass FCM das Benutzergerät identifizieren und sicherstellen kann, dass Ihre Absender-ID mit dem entsprechenden API-Schlüssel übereinstimmt und dass der Benutzer dem Server erlaubt hat, Push-Nachrichten zu senden. Unten ist eine super-einfache Manifest-Datei: Youll müssen den gcmsenderid Wert auf die Absender-ID aus Ihrem Firebase-Projekt. Sobald Sie Ihre Manifest-Datei in Ihrem Projekt gespeichert haben (manifest. json ist ein guter Name), verweisen Sie es von Ihrem HTML mit dem folgenden Tag im Kopf Ihrer Seite. Wenn Sie nicht ein Web-Manifest hinzufügen mit diesen Parametern youll eine Ausnahme erhalten, wenn Sie versuchen, den Benutzer zu schieben Nachrichten zu senden, mit dem Fehler Registrierung fehlgeschlagen - keine Absender-ID bereitgestellt oder Registrierung fehlgeschlagen - Berechtigung verweigert. Abonnieren Push Messaging Nun, da youve bekam ein Manifest eingerichtet, können Sie wieder in Ihre Websites JavaScript. Um sich abzumelden, müssen Sie die subscribe () - Methode für das PushManager-Objekt aufrufen, auf das Sie über die ServiceWorkerRegistration zugreifen. Dadurch wird der Benutzer aufgefordert, Ihre Ursprungsberechtigung zum Senden von Push-Benachrichtigungen zu übermitteln. Ohne diese Berechtigung können Sie sich nicht anmelden. Wenn das von der Methode subscribe () zurückgegebene Versprechen aufgelöst wird, erhalten Sie ein PushSubscription-Objekt, das einen Endpunkt enthält. Der Endpunkt sollte für jeden Benutzer auf Ihrem Server gespeichert werden, da Sie sie zu einem späteren Zeitpunkt zum Senden von Push-Nachrichten benötigen. Der folgende Code unterschreibt den Benutzer für Push-Messaging: An dieser Stelle ist Ihre Web-Anwendung bereit, eine Push-Nachricht zu empfangen, obwohl nichts passiert, bis wir einen Push-Event-Listener zu unserer Service-Worker-Datei hinzufügen. Service-Worker Push-Ereignis-Listener Wenn eine Push-Nachricht empfangen wird (auch darüber reden, wie man im nächsten Abschnitt tatsächlich eine Push-Nachricht sendet), wird ein Push-Event in Ihrem Service-Mitarbeiter ausgegeben, an dem Sie eine Benachrichtigung anzeigen müssen. Dieser Code registriert einen Push-Event-Listener und zeigt eine Benachrichtigung mit einem vordefinierten Titel, Text, Symbol und einem Benachrichtigungs-Tag an. Eine Besonderheit, die mit diesem Beispiel hervorgehoben wird, ist die Methode event. waitUntil (). Diese Methode übernimmt ein Versprechen und verlängert die Lebensdauer eines Ereignishandlers (oder kann davon ausgegangen werden, dass der Service-Arbeiter am Leben bleibt), bis das Versprechen erfüllt ist. In diesem Fall ist das Versprechen, das an event. waitUntil übergeben wurde, das zurückgesendete Versprechen aus showNotification (). Die Benachrichtigungs-ID fungiert als Kennung für eindeutige Benachrichtigungen. Wenn wir zwei Push-Nachrichten an denselben Endpunkt mit einer kurzen Verzögerung zwischen ihnen senden und Benachrichtigungen mit demselben Tag anzeigen, zeigt der Browser die erste Benachrichtigung an und ersetzt sie mit der zweiten Benachrichtigung, wenn die Push-Nachricht empfangen wird. Wenn Sie mehrere Benachrichtigungen gleichzeitig anzeigen möchten, verwenden Sie ein anderes Tag oder kein Tag. Nun schauen Sie sich ein vollständigeres Beispiel für die Anzeige einer Benachrichtigung später in diesem Beitrag. Für jetzt können die Dinge einfach halten und sehen, wenn das Senden einer Push-Nachricht zeigt diese Benachrichtigung. Senden einer Push-Nachricht Weve abonniert Push-Nachrichten und unser Service-Mitarbeiter ist bereit, eine Benachrichtigung zu zeigen, so dass seine Zeit, um eine Push-Nachricht über FCM zu senden. Dies gilt nur für die Browser mit FCM. Wenn Sie die PushSubscription. endpoint-Variable an Ihren Server senden, ist der Endpunkt für FCM besonders. Es hat einen Parameter am Ende der URL, die eine Registrierung ist. Ein Beispiel Endpunkt wäre: Die Registrierung wäre: Dies ist speziell für Browser mit FCM. In einem normalen Browser würden Sie einfach einen Endpunkt, und Sie würden diesen Endpunkt auf eine Standard-Weise und es würde funktionieren, unabhängig von der URL. Was bedeutet dies, dass auf Ihrem Server youll müssen Sie überprüfen, ob der Endpunkt für FCM ist und wenn es ist, extrahieren Sie die Registrierung. Um dies in Python tun könnten Sie etwas wie: Sobald Sie die Registrierungs-ID erhalten haben, können Sie einen Aufruf der FCM-API. Referenzdokumente finden Sie hier auf der FCM-API. Die wichtigsten Aspekte, die beim Aufruf von FCM beachtet werden müssen, sind: Beim Aufruf der API muss ein Authorization-Header mit dem Wert keyltYOURAPIKEYgt gesetzt werden, wobei ltYOURAPIKEYgt der API-Schlüssel des Firebase-Projekts ist. Der API-Schlüssel wird von FCM verwendet, um die entsprechende Absender-ID zu finden, sicherzustellen, dass der Benutzer die Berechtigung für Ihr Projekt erhalten hat und schließlich sicherstellt, dass die IP-Adresse des Servers für dieses Projekt whitelistiert ist. Ein geeigneter Content-Type-Header von applicationjson oder applicationx-www-form-urlencodedcharsetUTF-8, je nachdem, ob Sie die Daten als JSON - oder Formulardaten senden. Ein Array von Registrierungs-IDs - das sind die Registrierungs-IDs, die von den Benutzern aus den Endpunkten extrahiert werden. Bitte schauen Sie sich die Docs an, wie Sie Push-Nachrichten von Ihrem Server senden können. Für eine schnelle Überprüfung Ihres Service-Anbieters können Sie cURL verwenden, um eine Push-Nachricht an Ihren Browser zu senden. Tauschen Sie die ltYOURAPIKEYgt und ltYOURREGISTRATIONIDgt in diesem cURL-Befehl mit Ihren eigenen aus und führen Sie es von einem Terminal aus. Sie sollten eine glorreiche Benachrichtigung sehen: Beachten Sie beim Entwickeln Ihrer Backend-Logik, dass der Authorization-Header und das Format des POST-Objekts für den FCM-Endpunkt spezifisch sind, also erkennen Sie, wann der Endpunkt für FCM ist, und bedingen Sie den Header und formatieren Sie den POST-Körper. Für andere Browser (und hoffentlich Chrome in der Zukunft) youll müssen die Web Push Protocol zu implementieren. Ein Nachteil der aktuellen Implementierung der Push-API in Chrome ist, dass Sie keine Daten mit einer Push-Nachricht senden können. Nein, nichts. Der Grund dafür ist, dass in einer zukünftigen Implementierung Payload-Daten auf Ihrem Server verschlüsselt werden müssen, bevor sie an einen Push-Messaging-Endpunkt gesendet werden. Auf diese Weise kann der Endpunkt, egal welcher Push-Provider er ist, den Inhalt der Push-Nachricht nicht einfach anzeigen. Dies schützt auch vor anderen Schwachstellen wie schlechte Validierung von HTTPS-Zertifikaten und Man-in-the-Middle-Angriffen zwischen Ihrem Server und dem Push-Provider. Allerdings wird diese Verschlüsselung noch nicht unterstützt, also in der Zwischenzeit müssen Sie einen Abruf durchführen, um Informationen zu erhalten, die benötigt werden, um eine Benachrichtigung zu füllen. Ein vollständigeres Push-Event-Beispiel Die Benachrichtigung weve bisher gesehen ist ziemlich einfach und so weit wie Proben gehen, ist es ziemlich arm bei der Abdeckung einer realen Welt Use Case. Realistisch werden die meisten Leute einige Informationen von ihrem Server erhalten möchten, bevor sie die Benachrichtigung anzeigen. Dies können Daten sein, die den Benachrichtigungstitel und die Nachricht mit etwas Besonderem füllen oder einen Schritt weiter gehen und einige Seiten oder Daten zwischenspeichern, so dass, wenn der Benutzer auf die Benachrichtigung klickt, sofort alles verfügbar ist, wenn der Browser geöffnet ist, wenn das Netzwerk nicht verfügbar ist zu dieser Zeit. Im folgenden Code holen wir einige Daten aus einer API, konvertieren die Antwort auf ein Objekt und verwenden es, um unsere Benachrichtigung zu füllen. Es lohnt sich noch einmal, hervorzuheben, dass die event. waitUntil () ein Versprechen einträgt, das zu dem von showNotification () zurückgegebenen Versprechen führt. Was bedeutet, dass unser Ereignis-Listener nicht beendet wird, bis der asynchrone fetch () - Aufruf abgeschlossen ist und die Benachrichtigung angezeigt wird. Sie bemerken, dass wir eine Benachrichtigung zeigen, auch wenn es einen Fehler gibt. Dies liegt daran, wenn wir nicht, Chrome wird seine eigene generische Benachrichtigung zu zeigen. Öffnen einer URL, wenn der Benutzer auf eine Benachrichtigung klickt Wenn der Benutzer auf eine Benachrichtigung klickt, wird ein Notificationclick-Ereignis in Ihrem Service-Mitarbeiter versandt. Innerhalb des Handlers können Sie die entsprechenden Aktionen durchführen, beispielsweise indem Sie eine Registerkarte fokussieren oder ein Fenster mit einer bestimmten URL öffnen: Dieses Beispiel öffnet den Browser zum Stammverzeichnis des Ursprungsortes, indem eine bestehende Registerkarte mit demselben Ursprung fokussiert wird, sofern vorhanden Eine neue zu öffnen. Abonnement eines Users-Geräts Youve hat ein Benutzergerät abonniert und empfängt Push-Nachrichten, aber wie können Sie es abbestellen? Die wichtigsten Dinge, die zum Abmelden eines Benutzergeräts erforderlich sind, besteht darin, die Methode unsubscribe () auf dem PushSubscription-Objekt aufzurufen und den Endpunkt von Ihren Servern zu entfernen (Nur so dass Sie arent Senden Push-Nachrichten, die Sie wissen, wird nicht empfangen). Der unten stehende Code tut genau das: Das Abonnement auf dem Laufenden halten Subskriptionen können aus der Synchronisierung zwischen FCM und Ihrem Server heraus erhalten. Vergewissern Sie sich, dass Ihr Server den Antwortkörper der FCM-APIs send POST überprüft, auf der Suche nach Fehler: NotRegistered und canonicalid Ergebnisse, wie in der FCM-Dokumentation erklärt. Abonnements können auch nicht synchron zwischen dem Service-Worker und Ihrem Server. Nach dem erfolgreichen Abonnement von subsubmitingunsubsubject kann eine schuppige Netzwerkverbindung Sie möglicherweise daran hindern, Ihren Server zu aktualisieren, oder ein Benutzer kann die Benachrichtigungsberechtigung widerrufen, wodurch ein automatisches Abmelden ausgelöst wird. Behandeln Sie solche Fälle, indem Sie das Ergebnis von serviceWorkerRegistration. pushManager. getSubscription () periodisch (z. B. auf Seite laden) überprüfen und es mit dem Server synchronisieren. Sie können sich auch automatisch neu abonnieren, wenn Sie nicht mehr über ein Abonnement und eine Notification. permission verfügen. In sendSubscriptionToServer () müssen Sie darüber nachdenken, wie Sie bei der Aktualisierung des Endpunkts fehlerhafte Netzwerkanforderungen behandeln. Eine Lösung besteht darin, den Status des Endpunkts in einem Cookie zu verfolgen, um festzustellen, ob Ihr Server die neuesten Informationen benötigt oder nicht. Alle oben genannten Schritte führen zu einer vollständigen Implementierung von Push-Messaging im Web in Chrome 46. Es gibt noch spezielle Features, die die Arbeit erleichtern (wie eine Standard-API zum Auslösen von Push-Nachrichten) Messaging in Ihre Web-Anwendungen heute. So debuggen Sie Ihre Web-App Während der Implementierung von Push-Nachrichten werden Bugs an einem von zwei Orten leben: Ihrer Seite oder Ihrem Service-Mitarbeiter. Fehler in der Seite können mit DevTools debugge werden. Zum Debuggen von Service-Worker-Problemen stehen Ihnen zwei Optionen zur Verfügung: Gehen Sie zu Chrome: Prüfen Sie gt Service-Mitarbeiter. Diese Ansicht bietet nicht viele Informationen außer den derzeit laufenden Service-Mitarbeiter. Gehen Sie zu Chrome: Serviceworker-Interna und von hier aus können Sie den Zustand der Service-Mitarbeiter, und sehen Fehler, wenn es irgendwelche gibt. Diese Seite ist vorübergehend, bis DevTools eine ähnliche Funktion hat. Einer der besten Tipps, die ich jedem geben kann, der für Service-Mitarbeiter neu ist, nutzt das Kontrollkästchen Open DevTools-Fenster und pausiert JavaScript-Ausführung beim Start des Service-Workers zum Debuggen. Dieses Kontrollkästchen fügt einen Haltepunkt zu Beginn des Service-Workers hinzu und unterbricht die Ausführung. Dies ermöglicht es Ihnen, wieder aufzunehmen oder Schritt durch Ihre Service-Worker-Skript und sehen, wenn Sie irgendwelche Probleme. Wenn es scheint, ein Problem zwischen FCM und Ihre Service-Mitarbeiter Push-Ereignis, dann gibt es nicht viel können Sie tun, um das Problem zu debuggen, da es keine Möglichkeit für Sie zu sehen, ob Chrome nichts erhalten hat. Die wichtigste Sache zu gewährleisten ist, dass die Antwort von FCM erfolgreich ist, wenn Ihr Server einen API-Aufruf macht. Itll schauen etwas wie: Beachten Sie den Erfolg: 1 Antwort. Wenn Sie stattdessen einen Fehler sehen, dann deutet dies darauf hin, dass etwas nicht mit der FCM-Registrierungs-ID richtig ist und die Push-Nachricht nicht an Chrome gesendet wird. Debugging Service Workers auf Chrome für Android Im Moment Debugging Service-Mitarbeiter auf Chrome für Android ist nicht offensichtlich. Sie müssen auf Chrome: Inspect navigieren. Finden Sie Ihr Gerät und suchen Sie nach einem Listenelement mit dem Namen Worker pid. Die die URL Ihrer Service-Mitarbeiter hat. UX für Push-Benachrichtigungen Das Chrome-Team hat ein Dokument von Best Practices für Push-Benachrichtigungen UX sowie ein Dokument für einige der Kantenfälle zusammengestellt, wenn es mit Push-Benachrichtigungen arbeitet. Zukunft von Push Messaging auf Chrome und dem Open Web Dieser Abschnitt behandelt ein wenig Detail, das einige der Chrome-spezifischen Teile dieser Implementierung umfasst, die Sie beachten sollten und wie sich diese von anderen Browser-Implementierungen unterscheiden. Web Push-Protokoll und Endpunkte Die Schönheit der Push-API-Standard ist, dass Sie in der Lage, den Endpunkt zu nehmen. Übergeben Sie sie an Ihren Server und senden Sie Push-Nachrichten, indem Sie das Web Push Protocol implementieren. Das Web Push Protocol ist ein neuer Standard, den Push-Provider implementieren können, so dass Entwickler sich keine Gedanken darüber machen müssen, wer der Push-Provider ist. Die Idee ist, dass dies vermeidet die Notwendigkeit, sich für API-Schlüssel und senden Sie speziell formatierte Daten, wie Sie haben, mit FCM. Chrome war der erste Browser, der die Push-API implementierte und FCM nicht das Web Push Protokoll unterstützt, weshalb Chrome die gcmsenderid benötigt und Sie die restful API für FCM verwenden müssen. Das Endziel für Chrome ist es, das Web Push Protocol mit Chrome und FCM zu nutzen. Bis dahin müssen Sie den Endpunkt android. googleapisgcmsend erkennen und ihn getrennt von anderen Endpunkten behandeln, d. h. die Nutzdaten in einer bestimmten Weise formatieren und den Autorisierungsschlüssel hinzufügen. Wie implementiert man das Web Push Protocol Firefox Nightly arbeitet derzeit an Push und wird wahrscheinlich der erste Browser sein, um das Web Push Protocol zu implementieren. Wo sind die Spezifikationen Kann ich doppelte Benachrichtigungen zu verhindern, wenn meine Web-Präsenz hat mehrere Ursprünge, oder wenn ich sowohl eine Web-und native Präsenz Es gibt keine Lösung für diese im Moment, aber Sie können den Fortschritt auf Chromium folgen. Das ideale Szenario wäre, um eine Art von ID für ein Benutzergerät und dann auf der Server-Seite entsprechen die native App und Web-App-Abonnement-IDs und entscheiden, welche eine Push-Nachricht zu senden. Sie könnten dies über Bildschirmgröße, Gerätemodell, teilen einen generierten Schlüssel zwischen der Web-App und native app tun, aber jeder Ansatz hat Vor-und Nachteile. Warum brauche ich ein gcmsenderid Dies ist erforderlich, damit Chrome, Opera für Android und der Samsung Browser die Firebase Cloud Messaging (FCM) API nutzen können. Das Ziel ist, das Web Push-Protokoll zu verwenden, wenn der Standard finalisiert ist und FCM es unterstützen kann. Warum nicht Web Sockets oder Server-Sent Events (EventSource) Der Vorteil der Verwendung von Push-Nachrichten ist, dass selbst wenn Ihre Seite geschlossen ist, wird Ihr Service-Mitarbeiter geweckt werden und in der Lage sein, eine Benachrichtigung zu zeigen. Web Sockets und EventSource haben ihre Verbindung geschlossen, wenn die Seite oder Browser geschlossen ist. Was passiert, wenn ich nicht brauchen Hintergrund-Event-Lieferung Wenn Sie nicht benötigen, Hintergrund-Lieferung dann Web Sockets sind eine gute Option. Wann kann ich Push ohne Anzeigen (dh stille Hintergrund Push) Es gibt keine Zeitleiste für, wenn dies noch verfügbar sein wird, aber es ist eine Absicht, Hintergrund-Synchronisierung implementieren und während seine nicht entschieden oder specd, gibt es einige Diskussion über die Ermöglichung stille Push mit Hintergrund-Sync. Warum dies erfordert HTTPS Wie arbeite ich um diese während der Entwicklung Dienstleister erfordern sichere Ursprünge, um sicherzustellen, dass das Service-Worker-Skript aus dem beabsichtigten Ursprung und nicht aus einem Man-in-the-Middle-Angriff kommen. Derzeit bedeutet das, mit HTTPS auf Live-Sites, obwohl localhost wird während der Entwicklung arbeiten. Was bedeutet Browser-Unterstützung aussehen wie Chrome unterstützt in seiner stabilen Version und Mozilla haben Push in Firefox Nightly gearbeitet. Weitere Informationen finden Sie in der Implementierung des Push-API-Bugs und Sie können ihre Notification-Implementierung hier verfolgen. Kann ich eine Benachrichtigung nach einer bestimmten Zeitspanne entfernen Im Moment ist dies nicht möglich, aber wir planen, Unterstützung hinzuzufügen, um eine Liste der aktuell sichtbaren Benachrichtigungen zu erhalten. Wenn Sie einen Anwendungsfall, um ein Ablaufdatum für die Benachrichtigung nach seinem angezeigten erstellt haben, wed Liebe, um zu wissen, was das ist, so fügen Sie bitte einen Kommentar und gut übergeben sie zurück an das Chrome-Team. Wenn Sie eine Push-Benachrichtigung nur dann stoppen müssen, wenn Sie nach einer bestimmten Zeitspanne an den Benutzer gesendet werden und nicht wissen, wie lange die Benachrichtigung sichtbar bleibt, können Sie den Parameter FCMs time to live (ttl) verwenden. What are the limitations of push messaging in Chrome There are a few limitations outlined in this post: Chromes usage of CCM as a push service creates a number of proprietary requirements. Were working together to see if some of these can be lifted in the future. You have to show a notification when you receive a push message. Chrome on desktop has the caveat that if Chrome isnt running, push messages wont be received. This differs from Chrome OS and Android where push messages will always be received. Shouldnt we be using the Permissions API The Permission API is implemented in Chrome, but its not necessarily going to be available in all browsers. You can learn more here . Why doesnt Chrome open up the previous tab when I click a notification This issue only affects pages which arent currently controlled by a service worker. You can learn more here . What if a notification is out of date by the time the users device received the push You always have to show a notification when you receive a push message. In the scenario where you want to send a notification but its only useful for a certain period time, you can use the timetolive parameter on CCM so that FCM wont send the push message if it passes the expiry time. What happens if I send 10 push messages but only want the device to receive one FCM has a collapsekey parameter you can use to tell FCM to replace any pending message which has the same collapsekey, with the new message. Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License. and code samples are licensed under the Apache 2.0 License. For details, see our Site Policies. Java is a registered trademark of Oracle andor its affiliates. 18, 2017 The latest news on the Chromium blog Fork our API code samples and other open-source projects. Connect with ChromiumDev on Twitter Check out the Web Developer Relations team39s videos Attend a developer event and get hacking Contribute to WebFundamentals

Comments