使用来自 Web 推送通知的数据
Use data from Push in Web Push Notifications
我正在尝试使用Service Workers为Web推送通知设置演示。在服务辅助角色 sw.js 中,我有以下代码。
var title = 'Yay a message.';
var body = 'We have received a push message.';
var icon = 'icon.png';
var tag = 'simple-push-demo-notification-tag';
console.log("Hello!");
self.addEventListener('push', function(event) {
event.waitUntil(
self.registration.showNotification(title, {
body: body,
icon: icon,
tag: tag
})
);
});
这工作正常。我希望收到我随推送cURL
请求发送的数据,例如title
等。有没有办法通过这种waitUntil
方法获取所有这些数据?
任何帮助都非常感谢。
有两种方法:
- 推送有效负载(示例 https://serviceworke.rs/push-payload.html)。这更复杂,目前
仅在Firefox 和 chrome v50 中受支持。您可以将有效负载附加到推送消息,并通过事件的 data 属性 (https://developer.mozilla.org/en-US/docs/Web/API/PushMessageData) 访问它。
有效负载需要加密(https://datatracker.ietf.org/doc/html/draft-thomson-webpush-encryption-01),强烈建议使用库来处理加密细节(例如,对于 Node.js https://github.com/marco-c/web-push)。
在这种情况下,推送事件处理程序将是(假设有效负载作为 JSON 消息发送):
var data = event.data.json();
event.waitUntil(
self.registration.showNotification(data.title, {
body: data.body,
icon: data.icon,
tag: data.tag,
})
);
向服务器发出的 GET 请求以获取数据。例如,假设您的服务器返回 JSON 响应:
event.waitUntil( fetch('someURL') .then(response => response.json()) .then(data => self.registration.showNotification(data.title, { body: data.body, icon: data.icon, tag: data.tag, }) ) );
等到 Chrome 49 问世: 2016 年 3 月 8 日
就像这篇文章中所说:https://www.chromestatus.com/features/5746279325892608,chrome将实现有效载荷
相关文章:
- 如何链接 GCM Chrome 推送通知和有效负载数据
- 如何将数据(如用户 ID)传递给 Web 工作人员,以便从服务器获取其他推送通知数据
- 当新数据插入 MySQL 时,AJAX 通知警报弹出或发出声音
- 如何从eBay通知中获取数据
- 使用来自 Web 推送通知的数据
- 使用编码器点火器保存数据后显示通知
- 如何正确地通知聚合物中兄弟姐妹之间的数据变化
- 通知有关数据接收的指令
- Dojo DataGrid如何通知视图服务器上的数据已更改
- React+Flux数据错误会产生小吃条通知
- 如何在用户移动到另一个页面时向用户显示通知而不保存数据
- 如何缓存Ajax调用获得的通知数据
- 如何从请求中检索通知/数据
- 无法加载数据URL为chrome浏览器的GCM推送通知'notificationclick'事件
- FCM消息通知消息和数据消息(WEB桌面推送通知)
- Ajax/php获取最新数据通知
- 带有推送事件数据的推送通知
- 需要从不安全的URL调用数据为chrome的GCM推送通知
- 烬在哪里放置数据的通用代码,如通知,用户配置文件在导航栏上
- 如何根据在 HTML5 中使用服务器发送的事件检索的数据显示通知