PWA中的ServiceWorkerRegistration.showNotification,将应用程序置于前台

问题描述

我正在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();

}