Я использую сервисные работники с push-уведомлениями с сервера.Push-уведомления и опции кнопки отображаются:
self.addEventListener('push', (e) => {
console.info('Event: Push');
const title = 'Push notification demo';
const options = {
icon: '/images/icons/pwa512.png',
actions: [
{ action: 'like', title: 'Like' },
{ action: 'reply', title: 'Reply' }
]
};
e.waitUntil(self.registration.showNotification(title, options));
});
Так что теперь я хочу обработать щелчок по опциям:
self.addEventListener('notificationclick', function (event) {
if (!event.action) {
// Was a normal notification click
console.log('Notification Click.');
return;
}
switch (event.action) {
case 'like':
console.log('User like.');
break;
case 'reply':
console.log('User reply.');
break;
default:
console.log('Unknown action clicked:');
break;
}
});
Событие щелчка не обрабатывается.Я использую Chrome 72.0.3626.119 (64 бит) на рабочем столе.Но никакие события не перехватываются.В мобильном браузере тоже.Я изменил код так:
self.addEventListener('notificationclick', function (event) {
event.waitUntil(async function () {
if (!event.action) {
// Was a normal notification click
console.log('Notification Click.');
return;
}
switch (event.action) {
case 'like':
console.log('User like.');
break;
case 'reply':
console.log('User reply.');
break;
default:
console.log('Unknown action clicked:');
break;
}
}());
});
Но никаких событий не происходит.Что я забыл?С наилучшими пожеланиями.Ingd