PushManager

Baseline 2023

Newly available

Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Das PushManager-Interface der Push-API bietet eine Möglichkeit, Benachrichtigungen von Drittanbieter-Servern zu empfangen sowie URLs für Push-Benachrichtigungen anzufordern.

Auf dieses Interface wird über die ServiceWorkerRegistration.pushManager-Eigenschaft zugegriffen.

Statische Eigenschaften

PushManager.supportedContentEncodings

Gibt ein Array von unterstützten Inhaltskodierungen zurück, die verwendet werden können, um die Nutzlast einer Push-Nachricht zu verschlüsseln.

Instanzmethoden

PushManager.getSubscription()

Ruft ein bestehendes Push-Abonnement ab. Es gibt ein Promise zurück, das in ein PushSubscription-Objekt mit Details zu einem bestehenden Abonnement aufgelöst wird. Falls kein bestehendes Abonnement existiert, wird dies in einen null-Wert aufgelöst.

PushManager.permissionState()

Gibt ein Promise zurück, das in den Berechtigungsstatus des aktuellen PushManager aufgelöst wird, welcher einer der Werte 'granted', 'denied' oder 'prompt' sein wird.

PushManager.subscribe()

Abonniert einen Push-Dienst. Es gibt ein Promise zurück, das in ein PushSubscription-Objekt aufgelöst wird, das Details zu einem Push-Abonnement enthält. Ein neues Push-Abonnement wird erstellt, falls der aktuelle Service Worker kein bestehendes Abonnement hat.

Veraltete Methoden

PushManager.hasPermission() Veraltet Nicht standardisiert

Gibt ein Promise zurück, das in den PushPermissionStatus der anfordernden Web-App aufgelöst wird, welcher einer der Werte granted, denied oder default sein wird. Ersetzt durch PushManager.permissionState().

PushManager.register() Veraltet Nicht standardisiert

Abonniert ein Push-Abonnement. Ersetzt durch PushManager.subscribe().

PushManager.registrations() Veraltet Nicht standardisiert

Ruft bestehende Push-Abonnements ab. Ersetzt durch PushManager.getSubscription().

PushManager.unregister() Veraltet Nicht standardisiert

Hebt die Registrierung eines angegebenen Abonnementendpunkts auf und löscht ihn. Im aktualisierten API wird ein Abonnement aufgehoben, indem die PushSubscription.unsubscribe()-Methode aufgerufen wird.

Beispiel

js
this.onpush = (event) => {
  console.log(event.data);
  // From here we can write the data to IndexedDB, send it to any open
  // windows, display a notification, etc.
};

navigator.serviceWorker
  .register("serviceworker.js")
  .then((serviceWorkerRegistration) => {
    serviceWorkerRegistration.pushManager.subscribe().then(
      (pushSubscription) => {
        console.log(pushSubscription.endpoint);
        // The push subscription details needed by the application
        // server are now available, and can be sent to it using,
        // for example, the fetch() API.
      },
      (error) => {
        console.error(error);
      },
    );
  });

Spezifikationen

Specification
Push API
# pushmanager-interface

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch