PushManager - Web APIs | MDN (original) (raw)
Static properties
PushManager.supportedContentEncodings
Returns an array of supported content codings that can be used to encrypt the payload of a push message.
Instance methods
Retrieves an existing push subscription. It returns a Promise that resolves to a PushSubscription object containing details of an existing subscription. If no existing subscription exists, this resolves to a null value.
Returns a Promise that resolves to the permission state of the current PushManager, which will be one of 'granted', 'denied', or 'prompt'.
Subscribes to a push service. It returns a Promise that resolves to a PushSubscription 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() Deprecated Non-standard
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().
PushManager.register() Deprecated Non-standard
Subscribes to a push subscription. Replaced by PushManager.subscribe().
PushManager.registrations() Deprecated Non-standard
Retrieves existing push subscriptions. Replaced by PushManager.getSubscription().
PushManager.unregister() Deprecated Non-standard
Unregisters and deletes a specified subscription endpoint. In the updated API, a subscription is unregistered by calling the PushSubscription.unsubscribe() method.
Example
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);
},
);
});
Specifications
| Specification |
|---|
| Push API # pushmanager-interface |