This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
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.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 | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 42.0 | 44.0 (44.0)[1] | No support | ? | No support |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | No support | No support | 48.0 (48)[2] | No support | No support | No support | No support | 42.0 |
- [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.