如何处理 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,
);
});
如果您不想更新,您应该ngsw-worker.js
使用Webpack
orgulp
或等查看文件。然后在
this.scope.addEventListener('push', (event) => this.onPush(event));
添加以下内容的行之后:
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);
});