Opera推送通知 - 无法触发notificationclick事件

时间:2017-08-30 11:34:07

标签: push-notification opera chromium service-worker

尝试发送推送通知时,我遇到Opera Desktop Browser 47的问题。

在通知正确传递的同时,我无法触发'notificationclick'事件。控制台中也没有任何东西。

服务工作者:(带有样本测试数据的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();
};

现在,问题是我在发送通知后立即发出断点(不让事件完成),通知即将发送,'notificationclick'事件也正常工作。

这实际上非常奇怪,因为在其他具有相同服务代码的浏览器上工作正常。

有人有想法吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

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,Opera正在做一些奇怪的事情。