PushSubscription
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.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The PushSubscription
interface of the Push API provides a subscription's URL endpoint and allows unsubscribing from a push service.
An instance of this interface can be serialized.
Instance properties
PushSubscription.endpoint
Read only-
A string containing the endpoint associated with the push subscription.
PushSubscription.expirationTime
Read only-
A
DOMHighResTimeStamp
of the subscription expiration time associated with the push subscription, if there is one, or null otherwise. PushSubscription.options
Read only-
An object containing the options used to create the subscription.
PushSubscription.subscriptionId
Deprecated Read only Non-standard-
A string containing the subscription ID associated with the push subscription.
Instance methods
PushSubscription.getKey()
-
Returns an
ArrayBuffer
which contains the client's public key, which can then be sent to a server and used in encrypting push message data. PushSubscription.toJSON()
-
Standard serializer — returns a JSON representation of the subscription properties.
PushSubscription.unsubscribe()
-
Starts the asynchronous process of unsubscribing from the push service, returning a
Promise
that resolves to a boolean value when the current subscription is successfully unregistered.
Example
navigator.serviceWorker.ready.then((reg) => {
reg.pushManager.getSubscription().then((subscription) => {
subscription
.unsubscribe()
.then((successful) => {
// You've successfully unsubscribed
})
.catch((e) => {
// Unsubscribing failed
});
});
});
Specifications
Specification |
---|
Push API # pushsubscription-interface |
Browser compatibility
BCD tables only load in the browser