PushManager: getSubscription() Methode

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: Dieses Feature ist verfügbar in Web Workers.

Die PushManager.getSubscription() Methode des PushManager-Interfaces ruft ein bestehendes Push-Abonnement ab.

Sie gibt ein Promise zurück, das zu einem PushSubscription-Objekt aufgelöst wird, das Details eines bestehenden Abonnements enthält. Wenn kein bestehendes Abonnement vorhanden ist, wird es zu einem null-Wert aufgelöst.

Syntax

js
getSubscription()

Parameter

Keine.

Rückgabewert

Ein Promise, das zu einem PushSubscription-Objekt oder null aufgelöst wird.

Beispiele

Dieser Code-Ausschnitt stammt aus einem Beispiel für Push-Messaging und Benachrichtigungen. (Keine Live-Demo verfügbar.)

js
// We need the service worker registration to check for a subscription
navigator.serviceWorker.ready.then((serviceWorkerRegistration) => {
  // Do we already have a push message subscription?
  serviceWorkerRegistration.pushManager
    .getSubscription()
    .then((subscription) => {
      // Enable any UI which subscribes / unsubscribes from
      // push messages.
      const pushButton = document.querySelector(".js-push-button");
      pushButton.disabled = false;

      if (!subscription) {
        // We aren't subscribed to push, so set UI
        // to allow the user to enable push
        return;
      }

      // Keep your server in sync with the latest subscriptionId
      sendSubscriptionToServer(subscription);

      showCurlCommand(subscription);

      // Set your UI to show they have subscribed for
      // push messages
      pushButton.textContent = "Disable Push Messages";
      isPushEnabled = true;
    })
    .catch((err) => {
      console.error(`Error during getSubscription(): ${err}`);
    });
});

Spezifikationen

Specification
Push API
# dom-pushmanager-getsubscription

Browser-Kompatibilität

BCD tables only load in the browser