PushMessageData

Baseline 广泛可用 *

此功能已成熟,并可在许多设备和浏览器版本上运行。自 2023 年 3 月以来,它已在各种浏览器中可用。

* 此特性的某些部分可能存在不同级别的支持。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能仅在 Service Workers 中可用。

PushMessageData 接口属于 Push API,它提供了一些方法,允许你以各种格式检索服务器发送的推送数据。

Fetch API 中类似的方法不同,Fetch API 的方法只能调用一次,而这些方法可以多次调用。

通过 Push API 接收的消息由推送服务加密发送,然后由浏览器自动解密,之后才能通过 PushMessageData 接口的方法进行访问。

实例属性

无。

实例方法

PushMessageData.arrayBuffer()

将数据提取为 ArrayBuffer 对象。

PushMessageData.blob()

将数据提取为 Blob 对象。

PushMessageData.bytes()

将数据提取为 Uint8Array 对象。

PushMessageData.json()

将数据提取为 JSON 对象。

PushMessageData.text()

将数据提取为纯文本字符串。

示例

js
self.addEventListener("push", (event) => {
  const obj = event.data.json();

  if (obj.action === "subscribe" || obj.action === "unsubscribe") {
    fireNotification(obj, event);
    port.postMessage(obj);
  } else if (obj.action === "init" || obj.action === "chatMsg") {
    port.postMessage(obj);
  }
});

规范

规范
推送 API
# pushmessagedata-interface

浏览器兼容性