从Service Worker检查窗口是否处于活动状态

奥泽

我正在尝试运行一个Web应用程序,该应用程序在窗口处于非活动状态时发送推送通知。为此,我有一个服务人员,可以帮助从我的php服务器(通过Firebase)接收通知。

但是,我不确定如何通过我的Service worker检查窗口是否处于活动状态。Service Worker无权访问DOM,因此我无法直接通过DOM对其进行检查,并且我尝试对附加的JS文件进行检查,但是Service Worker收到变量未定义的错误。我的服务工作者代码如下:

self.addEventListener('push', function(event) {
  console.log('[Service Worker] Push Received.');
  // console.log(`[Service Worker] Push had this data: "${event.data.text()}"`);

  const title = 'Chat';
  const options = {
    body: 'New message received!',
    icon: '/images/logo/8-icon.png',
    badge: '/images/badge.png'
  };

  event.waitUntil(self.registration.showNotification(title, options));

});

self.addEventListener('notificationclick', function(event) {
  console.log('[Service Worker] Notification click Received.');

  event.notification.close();

  event.waitUntil(
    clients.openWindow('https://localhost:8000')
  );
});

如果网络应用程序处于活动状态,有人可以启发我检查是否有活动窗口以阻止推送通知的正确方法吗?

谢谢!

分离线

您可以使用可见性API-> https://developer.mozilla.org/zh-CN/docs/Web/API/Page_Visibility_API?redirectlocale=zh-CN&redirectslug=DOM%2FUsing_the_Page_Visibility_API

在主页上附加一个事件侦听器,以与您的服务人员对话。然后,服务人员可以相应地执行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查通知是否处于活动状态

Chrome:为什么serviceWorker.ready会解析为处于“已安装”状态的Service Worker注册?

如何检查给定URL中是否存在service-worker?

检查用户是否通过Service Worker重新联机

如何检查webm icecast流是否处于活动状态?

检查反应路由器路径是否处于活动状态

检查VPN连接在Android中是否处于活动状态?

Ionic2-检查页面是否处于活动状态

如何使用硒检查链接是否处于活动状态

检查WooCommerce是否处于活动状态以及使用什么版本

Wordpress:如何检查插件是否处于活动状态?

检查引导单选按钮是否处于活动状态

如何检查Python venv在Windows中是否处于活动状态?

MySQL约束检查是否存在并处于活动状态

RESTFUL->检查某个项目是否处于活动状态?

如何检查uicontextmenu是否可见或处于活动状态

如何不断检查线程是否处于活动状态

如何检查通知是否在android中处于活动状态

systemd-timesyncd.service在VMWare上的Arch上处于非活动状态

检测浏览器窗口是否处于活动状态,并在窗口再次处于活动状态后启动事件[JavaScript]

选择保持活动连接时,如何检查连接是否处于活动状态?

使io_service保持活动状态

如何检查移动数据是否处于活动状态或wifi是否已连接到任何热点?

我们如何检查请求的响应是否来自Service Worker

Javascript-检测窗口是否处于非活动状态但仍可见

AutoIT WinWaitActive无法理解该窗口是否处于活动状态

Outlook OnSend 插件是否支持 Service Worker?

如何检查我是否处于检查状态?

测试div是否处于活动状态jQuery