PushSubscription

基线 2023

新可用

2023 年 3 月起,此功能在所有最新的设备和浏览器版本中都能正常运行。此功能可能在较旧的设备或浏览器中无法正常运行。

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,在某些或所有 支持的浏览器 中可用。

注意:此功能在 Web 工作线程 中可用。

Push APIPushSubscription 接口提供订阅的 URL 终结点,并允许取消订阅推送服务。

此接口的实例可以被序列化。

实例属性

PushSubscription.endpoint 只读

包含与推送订阅关联的终结点的字符串。

PushSubscription.expirationTime 只读

与推送订阅关联的订阅过期时间的 DOMHighResTimeStamp(如果有),否则为 null。

PushSubscription.options 只读

包含用于创建订阅的选项的对象。

PushSubscription.subscriptionId 已弃用 只读 非标准

包含与推送订阅关联的订阅 ID 的字符串。

实例方法

PushSubscription.getKey()

返回一个 ArrayBuffer,其中包含客户端的公钥,该公钥可以发送到服务器并用于加密推送消息数据。

PushSubscription.toJSON()

标准序列化器 - 返回订阅属性的 JSON 表示形式。

PushSubscription.unsubscribe()

启动从推送服务取消订阅的异步过程,返回一个 Promise,该 Promise 在当前订阅成功注销时解析为布尔值。

示例

js
navigator.serviceWorker.ready.then((reg) => {
  reg.pushManager.getSubscription().then((subscription) => {
    subscription
      .unsubscribe()
      .then((successful) => {
        // You've successfully unsubscribed
      })
      .catch((e) => {
        // Unsubscribing failed
      });
  });
});

规范

规范
Push API
# pushsubscription-interface

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅