Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Push API
Hinweis: Diese Funktion ist inWeb Workers verfügbar.
DiePush-API ermöglicht es Webanwendungen, Nachrichten von einem Server zu empfangen, unabhängig davon, ob sich die Web-App im Vordergrund befindet oder aktuell in einem Benutzeragenten geladen ist. Dadurch können Entwickler asynchrone Benachrichtigungen und Updates an Benutzer senden, die sich dafür entschieden haben, was zu einer besseren Interaktion mit zeitgerechten neuen Inhalten führt.
In diesem Artikel
Push-Konzepte und Nutzung
Warnung:Beim Implementieren vonPushManager-Abonnements ist es äußerst wichtig, dass Sie sich in Ihrer App gegen CSRF/XSRF-Probleme schützen. Siehe die folgenden Artikel für weitere Informationen:
Damit eine App Push-Nachrichten empfangen kann, muss ein aktiverService Worker vorhanden sein. Wenn der Service Worker aktiv ist, kann er sich für Push-Benachrichtigungen mithilfe vonPushManager.subscribe() anmelden.
Das resultierendePushSubscription enthält alle Informationen, die die Anwendung benötigt, um eine Push-Nachricht zu senden: einen Endpunkt und den Verschlüsselungsschlüssel, der zum Senden von Daten erforderlich ist.
Der Service Worker wird bei Bedarf gestartet, um eingehende Push-Nachrichten zu verarbeiten, die an denonpush-Ereignishandler geliefert werden. Dadurch können Apps reagieren, wenn Push-Nachrichten empfangen werden, beispielsweise indem eine Benachrichtigung angezeigt wird (mithilfe vonServiceWorkerRegistration.showNotification()).
Jedes Abonnement ist einzigartig für einen Service Worker. Der Endpunkt des Abonnements ist eine einzigartigeCapability-URL: Das Wissen um den Endpunkt ist alles, was erforderlich ist, um eine Nachricht an Ihre Anwendung zu senden. Die Endpunkt-URL muss daher geheim gehalten werden, da sonst andere Anwendungen möglicherweise Push-Nachrichten an Ihre Anwendung senden können.
Das Aktivieren eines Service Workers zur Zustellung einer Push-Nachricht kann zu einem erhöhten Ressourcenverbrauch führen, insbesondere der Batterie. Verschiedene Browser haben unterschiedliche Methoden, um dies zu handhaben, es gibt derzeit keinen Standardmechanismus. Firefox erlaubt eine begrenzte Anzahl (Quote) von Push-Nachrichten an eine Anwendung, obwohl Push-Nachrichten, die Benachrichtigungen generieren, von diesem Limit ausgenommen sind. Das Limit wird jedes Mal erneuert, wenn die Seite besucht wird. In Chrome gibt es keine Limits.
Schnittstellen
PushEventRepräsentiert eine Push-Aktion, die an denglobalen Bereich eines
ServiceWorkergesendet wird. Es enthält Informationen, die von einer Anwendung an einePushSubscriptiongesendet werden.PushManagerBietet eine Möglichkeit, Benachrichtigungen von Drittanbieter-Servern zu erhalten sowie URLs für Push-Benachrichtigungen anzufordern.
PushMessageDataBietet Zugriff auf Push-Daten, die von einem Server gesendet werden, und enthält Methoden zur Manipulation der empfangenen Daten.
PushSubscriptionBietet einen URL-Endpunkt eines Abonnements und ermöglicht das Abbestellen von einem Push-Dienst.
PushSubscriptionOptionsRepräsentiert die mit dem Push-Abonnement verbundenen Optionen.
Ergänzungen im Service Worker
Die folgenden Ergänzungen zurService Worker-API wurden in der Push-API-Spezifikation festgelegt, um einen Einstiegspunkt für die Verwendung von Push-Nachrichten bereitzustellen. Sie überwachen auch und reagieren auf Push- und Abonnementänderungsereignisse.
ServiceWorkerRegistration.pushManagerSchreibgeschütztGibt eine Referenz zur
PushManager-Schnittstelle zurück, um Push-Abonnements zu verwalten, einschließlich Anmelden, Abrufen eines aktiven Abonnements und Zugriff auf den Push-Berechtigungsstatus. Dies ist der Einstiegspunkt für die Nutzung von Push-Nachrichten.onpushEin Ereignishandler, der jedes Mal ausgelöst wird, wenn ein
push-Ereignis auftritt, das heißt, wann immer eine Server-Push-Nachricht empfangen wird.onpushsubscriptionchangeEin Ereignishandler, der ausgelöst wird, wenn ein
pushsubscriptionchange-Ereignis auftritt; zum Beispiel, wenn ein Push-Abonnement ungültig geworden ist oder bald ungültig wird (z. B. wenn ein Push-Dienst ein Ablaufdatum festlegt).
Beispiele
MozillasServiceWorker Cookbook enthält viele nützliche Push-Beispiele.
Spezifikationen
| Specification |
|---|
| Push API> # pushevent-interface> |
| Push API> # pushmessagedata-interface> |