ServiceWorkerGlobalScope:push 事件

基线 2023

新可用

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

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

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

当服务工作线程收到推送消息时,push 事件将发送到服务工作线程的全局作用域(由ServiceWorkerGlobalScope 接口表示)。

此事件不可取消,也不冒泡。

语法

在诸如addEventListener()之类的函数中使用事件名称,或设置事件处理程序属性。

js
addEventListener("push", (event) => {});

onpush = (event) => {};

事件类型

事件属性

继承其父级ExtendableEvent的属性。其他属性

PushEvent.data 只读

返回对PushMessageData对象的引用,该对象包含发送到PushSubscription的数据。

示例

此示例为push事件设置了一个处理程序,该处理程序获取JSON数据,对其进行解析,并根据消息中包含的信息调度消息以进行处理。

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

    switch (message.type) {
      case "init":
        doInit();
        break;
      case "shutdown":
        doShutdown();
        break;
    }
  },
  false,
);

规范

规范
Push API
# extensions-to-the-serviceworkerglobalscope-interface
Push API
# dom-serviceworkerglobalscope-onpush

浏览器兼容性

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

另请参阅