This is an experimental technology
Check 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 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 API The definition of 'PushSubscription' in that specification. |
Working Draft | Initial definition |
Browser compatibility
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 42 | (Yes) | 44.0 (44.0)[1] | No support | 29 | No support |
expirationTime |
60 | (Yes) | ? | No support | 47 | No support |
Feature | Android Webview | Chrome for Android | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|---|
Basic support | 42 | 42 | (Yes) | 48.0 (48)[2] | No support | No support | 29 | No support |
expirationTime |
60 | 60 | (Yes) | ? | No support | No support | 47 | No support |
- [1] Push (and Service Workers) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
- [2] Push has been enabled by default on Firefox for Android version 48.
See also
Document Tags and Contributors
Tags:
Contributors to this page:
glen.cheney,
libbymc,
jpmedley,
stuartsierra,
prograamer,
chrisdavidmills,
Sheppy,
Sebastianz,
kscarfone
Last updated by:
glen.cheney,