Ban*_*eil 13 javascript notifications web-push
我正在实现Webpush ruby gem以向我网站的用户发送推送通知.
服务器代码:
Webpush.payload_send({
message: notification.message,
url: notification.url, # I can't figure out how to access this key
id: notification.id, # or this key from the service worker
endpoint: endpoint,
p256dh: p256dh_key,
vapid: vapid_keys,
ttl: 24 * 60 * 60,
auth: auth_key,
})
Run Code Online (Sandbox Code Playgroud)
我在客户端设置了一个服务工作者来显示通知并使其可单击.
self.addEventListener("push", function (event) {
var title = (event.data && event.data.text()) || "New Message";
event.waitUntil(
self.registration.showNotification(title, {
body: "New push notification",
icon: "/images/logo@2x.png",
tag: "push-notification-tag",
data: {
url: event.data.url, // This is returning null
id: event.data.id // And this is returning null
}
})
)
});
self.addEventListener('notificationclick', function(event) {
event.notification.close();
event.waitUntil(
clients.openWindow(event.data.url + "?notification_id=" + event.data.id)
);
})
Run Code Online (Sandbox Code Playgroud)
一切正常,除了我通过的自定义键(url,id)无法从服务工作者中访问.
有谁知道如何通过WebPush gem传递自定义数据?
Jon*_*lms 11
从Webpush(带有效负载)文档中,您似乎应该使用该JSON.stringify()方法将所有数据放入消息中,并在服务工作者中检索它JSON.parse().
服务器:
Webpush.payload_send({
message:JSON.stringify({
message: notification.message,
url: notification.url,
id: notification.id,
}),
endpoint: endpoint,
p256dh: p256dh_key,
vapid: vapid_keys,
ttl: 24 * 60 * 60,
auth: auth_key,
})
Run Code Online (Sandbox Code Playgroud)
客户:
event.waitUntil(
self.registration.showNotification(title, {
body: "New push notification",
icon: "/images/logo@2x.png",
tag: "push-notification-tag",
data: {
url: JSON.parse(event.message).url
}
})
Run Code Online (Sandbox Code Playgroud)
mun*_*jal 10
自定义数据在event.notification对象中直接出现在事件中(在notificationclick中).所以如果你想在notificationclick函数中获取自定义数据变量,那么你应该这样做:)
self.addEventListener('notificationclick', function(event) {
event.notification.close();
event.waitUntil(
clients.openWindow(event.notification.data.url + "?notification_id=" + event.notification.data.id)
);
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10939 次 |
| 最近记录: |