This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.
The PushSubscription
interface of the Push API provides a subcription's URL endpoint and allows unsubscription from a push service.
An instance of this interface can be serialized.
Properties
PushSubscription.endpoint
Read only- A
USVString
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
' Read only- A
DOMString
containing the subscription ID associated with the push subscription.
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 aBoolean
when the current subscription is successfully unregistered.
Example
navigator.serviceWorker.ready.then(function(reg) {
reg.pushManager.getSubscription().then(function(subscription) {
subscription.unsubscribe().then(function(successful) {
// You've successfully unsubscribed
}).catch(function(e) {
// Unsubscription failed
})
})
});
Specifications
Specification | Status | Comment |
Push APIThe definition of 'PushSubscription' in that specification. | Working Draft | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
PushSubscription
|
Chrome
Full support 42 |
Edge
Full support ≤18 |
Firefox Full support 44 Full support 44 Notes' Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API. |
IE
No support No |
Opera
Full support 29 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 42 |
Firefox Android
Full support 48 |
Opera Android
Full support 29 |
Safari iOS
No support No |
Samsung Internet Android
Full support 4.0 |
endpoint
|
Chrome
Full support 42 |
Edge
Full support 16 |
Firefox Full support 44 Full support 44 Notes' Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API. |
IE
No support No |
Opera
Full support 29 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 42 |
Firefox Android
Full support 48 |
Opera Android
Full support 29 |
Safari iOS
No support No |
Samsung Internet Android
Full support 4.0 |
expirationTime
|
Chrome
Full support 60 |
Edge
Full support 16 |
Firefox
No support No |
IE
No support No |
Opera
Full support 47 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 60 |
Firefox Android
No support No |
Opera Android
Full support 44 |
Safari iOS
No support No |
Samsung Internet Android
Full support 8.0 |
getKey()
|
Chrome
Full support 42 |
Edge
Full support 16 |
Firefox Full support 44 Full support 44 Notes' Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API. |
IE
No support No |
Opera
Full support 29 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 42 |
Firefox Android
Full support 48 |
Opera Android
Full support 29 |
Safari iOS
No support No |
Samsung Internet Android
Full support 4.0 |
options
|
Chrome
Full support 42 |
Edge
Full support 16 |
Firefox Full support 44 Full support 44 Notes' Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API. |
IE
No support No |
Opera
Full support 29 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 42 |
Firefox Android
Full support 48 |
Opera Android
Full support 29 |
Safari iOS
No support No |
Samsung Internet Android
Full support 4.0 |
subscriptionId
|
Chrome
Full support 42 |
Edge
Full support ≤18 |
Firefox
No support No |
IE
No support No |
Opera
Full support 29 |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 42 |
Firefox Android
No support No |
Opera Android
Full support 29 |
Safari iOS
No support No |
Samsung Internet Android
Full support 4.0 |
toJSON()
|
Chrome
Full support 42 |
Edge
Full support 17 |
Firefox
Full support 46 |
IE
No support No |
Opera
Full support Yes |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 50 |
Firefox Android
Full support 48 |
Opera Android
Full support Yes |
Safari iOS
No support No |
Samsung Internet Android
Full support 5.0 |
unsubscribe()
|
Chrome
Full support 42 |
Edge
Full support 16 |
Firefox Full support 44 Full support 44 Notes' Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API. |
IE
No support No |
Opera
Full support Yes |
Safari
No support No |
WebView Android
No support No |
Chrome Android
Full support 50 |
Firefox Android
Full support 48 |
Opera Android
Full support Yes |
Safari iOS
No support No |
Samsung Internet Android
Full support 5.0 |
Legend
- Full support
- Full support
- No support
- No support
- See implementation notes.'
- See implementation notes.
See also
PushSubscription by Mozilla Contributors is licensed under CC-BY-SA 2.5.