我正在使用服务人员和来自服务器的推送通知。 显示推送通知和选项按钮:
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;
}
}());
});
但是没有事件点击。我会忘记什么? 最好的祝福。 英吉特