PushEvent:data 属性

基线 2023

新可用

2023 年 3 月起,此功能可在最新的设备和浏览器版本中使用。此功能可能无法在较旧的设备或浏览器中使用。

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

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

PushEvent 接口的 data 只读属性返回对 PushMessageData 对象的引用,该对象包含发送到 PushSubscription 的数据。

一个 PushMessageData 对象或 null,如果在事件实例初始化时未传递 data 成员。

示例

以下示例从 PushEvent 获取数据并在所有服务工作者的客户端上显示它。

js
self.addEventListener("push", (event) => {
  if (!(self.Notification && self.Notification.permission === "granted")) {
    return;
  }

  const data = event.data?.json() ?? {};
  const title = data.title || "Something Has Happened";
  const message =
    data.message || "Here's something you might want to check out.";
  const icon = "images/new-notification.png";

  const notification = new Notification(title, {
    body: message,
    tag: "simple-push-demo-notification",
    icon,
  });

  notification.addEventListener("click", () => {
    clients.openWindow(
      "https://example.blog.com/2015/03/04/something-new.html",
    );
  });
});

规范

规范
Push API
# dom-pushevent-data

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。