我在尝试发送推送通知时面临着Opera桌面浏览器47的问题。
虽然通知正确地交付了,但我无法触发"通知"事件。控制台也没有。
服务工作者:(带有示例测试数据的SW片段)
self.addEventListener('push', function(event) {
event.waitUntil(self.registration.pushManager.getSubscription().then(function(o) {
if (event.data) {
console.log(event.data);
var json=event.data.json();
var notifs = [];
const title = 'Sample Opera Title';
const options = {
body: 'Body of push notification',
};
payload_notifs.push(self.registration.showNotification(title, options));
return Promise.all(notifs);
}
}));
});
self.onnotificationclick = function(event) {
console.log('On notification click: ', event.notification.tag);
event.notification.close();
};
现在,当我在发送通知(不让事件完成)之后放断点时,通知已交付时,"通知"事件也可以。
这实际上非常奇怪,因为在具有相同服务代码的其他浏览器上工作正常。
有人有主意吗?
尝试以下:
self.addEventListener('push', function(event) {
event.waitUntil(self.registration.pushManager.getSubscription().then(function(o) {
if (event.data) {
console.log(event.data);
var json=event.data.json();
var notifs = [];
const title = 'Sample Opera Title';
const options = {
body: 'Body of push notification',
};
payload_notifs.push(self.registration.showNotification(title, options));
Promise.all(notifs);
}
}));
});
self.onnotificationclick = function(event) {
console.log('On notification click: ', event.notification.tag);
event.notification.close();
};
删除 return
,歌剧正在做一些奇怪的事情。