PushSubscription

这是 实验性技术
检查 浏览器兼容性表格 在生产中使用这之前。

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.

特性

PushSubscription.endpoint 只读
A USVString containing the endpoint associated with the push subscription.
PushSubscription.expirationTime 只读
A DOMHighResTimeStamp of the subscription expiration time associated with the push subscription, if there is one, or null otherwise.
PushSubscription.options 只读
An object containing the options used to create the subscription.
PushSubscription.subscriptionId 只读
A DOMString containing the subscription ID associated with the push subscription.

方法

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 when the current subscription is successfully unregistered.

范例

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
    })
  })
});
					

规范

规范 状态 Comment
Push API
The definition of 'PushSubscription' in that specification.
工作草案 初始定义

浏览器兼容性

更新 GitHub 上的兼容性数据
Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
PushSubscription Chrome 42 Edge ≤18 Firefox 44
注意事项
44
注意事项
Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 不支持 No Opera 29 Safari 不支持 No WebView Android 不支持 No Chrome Android 42 Firefox Android 48 Opera Android 29 Safari iOS 不支持 No Samsung Internet Android 4.0
endpoint Chrome 42 Edge 16 Firefox 44
注意事项
44
注意事项
Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 不支持 No Opera 29 Safari 不支持 No WebView Android 不支持 No Chrome Android 42 Firefox Android 48 Opera Android 29 Safari iOS 不支持 No Samsung Internet Android 4.0
expirationTime Chrome 60 Edge 16 Firefox 不支持 No IE 不支持 No Opera 47 Safari 不支持 No WebView Android 不支持 No Chrome Android 60 Firefox Android 不支持 No Opera Android 44 Safari iOS 不支持 No Samsung Internet Android 8.0
getKey() Chrome 42 Edge 16 Firefox 44
注意事项
44
注意事项
Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 不支持 No Opera 29 Safari 不支持 No WebView Android 不支持 No Chrome Android 42 Firefox Android 48 Opera Android 29 Safari iOS 不支持 No Samsung Internet Android 4.0
options Chrome 42 Edge 16 Firefox 44
注意事项
44
注意事项
Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 不支持 No Opera 29 Safari 不支持 No WebView Android 不支持 No Chrome Android 42 Firefox Android 48 Opera Android 29 Safari iOS 不支持 No Samsung Internet Android 4.0
subscriptionId Chrome 42 Edge ≤18 Firefox 不支持 No IE 不支持 No Opera 29 Safari 不支持 No WebView Android 不支持 No Chrome Android 42 Firefox Android 不支持 No Opera Android 29 Safari iOS 不支持 No Samsung Internet Android 4.0
toJSON() Chrome 42 Edge 17 Firefox 46 IE 不支持 No Opera Yes Safari 不支持 No WebView Android 不支持 No Chrome Android 50 Firefox Android 48 Opera Android Yes Safari iOS 不支持 No Samsung Internet Android 5.0
unsubscribe() Chrome 42 Edge 16 Firefox 44
注意事项
44
注意事项
Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE 不支持 No Opera Yes Safari 不支持 No WebView Android 不支持 No Chrome Android 50 Firefox Android 48 Opera Android Yes Safari iOS 不支持 No Samsung Internet Android 5.0

图例

完整支持
完整支持
不支持
不支持
见实现注意事项。

另请参阅