问题描述
我正在PWA中显示通知。它可以正常工作并显示通知。但是,如果您单击通知(如果可能),我似乎无法找出如何将应用程序置于前台?
用例:
用户在Facebook上时会显示一条通知。然后,当用户单击通知时,我希望我的应用程序进入前台。
当我无法在本地运行时,这可能吗?
这是我的测试代码:
navigator.serviceWorker.register('service-worker.js');
Notification.requestPermission(function(result) {
if (result === 'granted') {
navigator.serviceWorker.ready.then(function(registration) {
registration.showNotification('Notification with ServiceWorker');
});
}
});
解决方法
所以我的问题是我缺乏知识!我没有想到应将onclick处理程序放置在服务工作者中。
我在这里找到了很好的帮助:
https://developers.google.com/web/fundamentals/push-notifications
https://web-push-book.gauntface.com/demos/notification-examples/
,您可以在PWA中打开一个URL。即使您的PWA中已经打开一个标签,它也会在浏览器的新标签中打开它。
handleResponse( event ) {
console.log( '[Service Worker] Notification click Received. ${event}' );
if ( event.action && validURL( event.action ) ) {
clients.openWindow( event.action );
}
event.notification.close();
}