ServiceWorkerGlobalScope:push 事件
注意:此功能仅在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 的浏览器中加载。