PushEvent - 表示收到的推送消息
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
PushEvent
是 Push API 的接口,表示收到的推送消息。此事件发送到 ServiceWorker
的全局范围。它包含从应用程序服务器发送到 PushSubscription
的信息。
构造函数
PushEvent.PushEvent()
创建一个新的 PushEvent
对象。
属性
从其父接口 ExtendableEvent
继承了属性。附加属性:
PushEvent.data
只读
返回 PushMessageData
对象的引用,包含发送到 PushSubscription
的数据。
方法
从其父接口 ExtendableEvent
继承了方法。
实例
以下示例从 PushEvent
中获取数据,并将其显示在所有服务工作者的客户端上。
self.addEventListener('push', function(event) {
if (!(self.Notification && self.Notification.permission === 'granted')) {
return;
}
var data = {};
if (event.data) {
data = event.data.json();
}
var title = data.title || "发生了一些事情";
var message = data.message || "这是您可能要检查的内容。";
var icon = "images/new-notification.png";
var notification = new self.Notification(title, {
body: message,
tag: 'simple-push-demo-notification',
icon: icon
});
notification.addEventListener('click', function() {
if (clients.openWindow) {
clients.openWindow('https://example.blog.com/2015/03/04/something-new.html');
}
});
});
规范
规范 | 状态 | 备注 |
---|---|---|
Push API PushEvent 的定义 |
工作草案 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 42 | 16 17 | 4412 | 不支持 | 37 | 不支持 |
PushEvent() 构造函数 | 42 | 16 17 | 4412 | 不支持 | 37 | 不支持 |
data | 57 | 16 17 | 4412 | 不支持 | 44 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 不支持 | 42 | 未知 | 44 483 | 未知 | 37 | 不支持 |
PushEvent() 构造函数 | 不支持 | 42 | 未知 | 44 483 | 未知 | 37 | 不支持 |
data | 不支持 | 57 | 未知 | 44 483 | 未知 | 43 | 不支持 |
1. 在 Firefox 45 和 52 扩展支持版本(ESR)中,服务 worker(和 Push)已被禁用。
2. 仅在 Nightly,Developer Edition 和 Beta 通道中启用。
3. 默认情况下启用推送。