PushManager.getSubscription()
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The PushManager.getSubscription()
method of the PushManager
interface 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.
Syntax
PushManager.getSubscription().then(function(pushSubscription) { ... } );
Parameters
None.
Returns
A Promise
that resolves to a PushSubscription
object or null
.
Example
This code snippet is taken from a push messaging and notification sample. (No live demo is available.)
// We need the service worker registration to check for a subscription navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) { // Do we already have a push message subscription? serviceWorkerRegistration.pushManager.getSubscription() .then(function(subscription) { // Enable any UI which subscribes / unsubscribes from // push messages. var 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(function(err) { window.Demo.debug.log('Error during getSubscription()', err); }); });
Specifications
Specification |
---|
Push API # dom-pushmanager-getsubscription |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
getSubscription |
42 |
17 |
44
Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
|
No |
29 |
No |
No |
42 |
48
Push enabled by default.
|
29 |
No |
4.0 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PushManager/getSubscription