PushManager

Experimental

Dies ist eine experimentelle Technologie
Da diese Technologie noch nicht definitiv implementiert wurde, sollte die Browserkompatibilit├Ąt beachtet werden. Es ist auch m├Âglich, dass die Syntax in einer sp├Ąteren Spezifikation noch ge├Ąndert wird.

The PushManager interface of the Push API provides a way to receive notifications from third-party servers as well as request URLs for push notifications.

This interface is accessed via the ServiceWorkerRegistration.pushManager (en-US) property.

Note: This interface replaces functionality previously offered by the obsolete PushRegistrationManager (en-US) interface.

Properties

None.

Methods

PushManager.getSubscription() (en-US)
Retrieves an existing push subscription. It returns a Promise that resolves to a PushSubscription (en-US) object containing details of an existing subscription. If no existing subscription exists, this resolves to a null value.
PushManager.permissionState() (en-US)
Returns a Promise that resolves to the permission state of the current PushManager, which will be one of 'granted', 'denied', or 'prompt'.
PushManager.subscribe()
Subscribes to a push service. It returns a Promise that resolves to a PushSubscription (en-US) object containing details of a push subscription. A new push subscription is created if the current service worker does not have an existing subscription.

Deprecated methods

PushManager.hasPermission() (en-US) This deprecated API should no longer be used, but will probably still work.
Returns a Promise that resolves to the PushPermissionStatus of the requesting webapp, which will be one of granted, denied, or default. Replaced by PushManager.permissionState() (en-US).
PushManager.register() (en-US) This deprecated API should no longer be used, but will probably still work.
Subscribes to a push subscription. Replaced by PushManager.subscribe().
PushManager.registrations() (en-US) This deprecated API should no longer be used, but will probably still work.
Retrieves existing push subscriptions. Replaced by PushManager.getSubscription() (en-US).
PushManager.unregister() (en-US) This deprecated API should no longer be used, but will probably still work.
Unregisters and deletes a specified subscription endpoint. In the updated API, a subscription is unregistered by calling the PushSubscription.unsubscribe() (en-US) method.

Example

this.onpush = function(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(
  function(serviceWorkerRegistration) {
    serviceWorkerRegistration.pushManager.subscribe().then(
      function(pushSubscription) {
        console.log(pushSubscription.subscriptionId);
        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, an XMLHttpRequest.
      }, function(error) {
        // During development it often helps to log errors to the
        // console. In a production environment it might make sense to
        // also report information about errors back to the
        // application server.
        console.log(error);
      }
    );
  });

Specifications

Specification Status Comment
Push API
Die Definition von 'PushManager' in dieser Spezifikation.
Arbeitsentwurf Initial definition.

Browser compatibility

Wir konvertieren die Kompatibilit├Ątsdaten in ein maschinenlesbares JSON Format. Diese Kompatibilit├Ątstabelle liegt noch im alten Format vor, denn die darin enthaltenen Daten wurden noch nicht konvertiert. Finde heraus wie du helfen kannst! (en-US)
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 42.0 44.0 (44.0) Nicht unterst├╝tzt ? Nicht unterst├╝tzt
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support Nicht unterst├╝tzt Nicht unterst├╝tzt Nicht unterst├╝tzt Nicht unterst├╝tzt Nicht unterst├╝tzt Nicht unterst├╝tzt Nicht unterst├╝tzt 42.0

See also