我该如何在Angular Service Worker中处理推送通知的点击事件? SWPush没有任何方法。
我尝试引用一个监听"notificationclick"事件处理程序的JS文件,但在单击通知按钮时它从未被触发。
我该如何在Angular Service Worker中处理推送通知的点击事件? SWPush没有任何方法。
我尝试引用一个监听"notificationclick"事件处理程序的JS文件,但在单击通知按钮时它从未被触发。
我建议将 Angular 升级至最新的版本(至少 Angular 7.1.0),并且保持更新。这样,您就可以订阅 notificationClicks
。
在构造函数中注入 SwPush
,然后使用以下内容:
this.swPush.notificationClicks.subscribe( arg =>
{
console.log(
'Action: ' + arg.action,
'Notification data: ' + arg.notification.data,
'Notification data.url: ' + arg.notification.data.url,
'Notification data.body: ' + arg.notification.body,
);
});
this.scope.addEventListener('notificationclick', (event) => {
console.log('Notification event', event);
event.notification.close();
var payload = event.notification.data;
if (event.action && payload.actions && payload.actions.includes(event.action)
clients.openWindow && event.notification.data.url) {
event.waitUntil(clients.openWindow(event.notification.data.url));
}
});
我需要更新我的package.json文件:
"@angular/service-worker": "7.1.0"
然后这个问题就得到了解决:
this.swPush.notificationClicks.subscribe((result) => {
console.log('clicked', result);
});
this.swPush.notificationClicks.subscribe((result) => {
console.log('clicked', result);
});