PushMessageData

基线 2023

新可用

2023 年 3 月起,此功能适用于最新的设备和浏览器版本。此功能可能不适用于较旧的设备或浏览器。

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

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

Push APIPushMessageData 接口提供了一些方法,可以让您以各种格式检索服务器发送的推送数据。

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

规范

规范
Push API
# pushmessagedata-interface

浏览器兼容性

BCD 表格仅在浏览器中加载