Оповещение Opera Push Notification - Невозможно вызвать событие notificationclick

Я столкнулся с проблемой в Opera Desktop Browser 47 при попытке отправить push-уведомления.

Хотя уведомления доставляются правильно, я не могу вызвать событие «notificationclick». В консоли тоже ничего.

Service Worker: (фрагмент ПО с примерами тестовых данных)

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» также работает.

На самом деле это очень странно, потому что в других браузерах с таким же сервисным кодом все работает нормально.

У кого-нибудь есть идея?


person Shubham    schedule 30.08.2017    source источник


Ответы (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 делает что-то странное.

person Umang Galaiya    schedule 06.09.2017