Ping service worker 不显示通知
Posted
技术标签:
【中文标题】Ping service worker 不显示通知【英文标题】:Ping service worker without displaying a notification 【发布时间】:2019-07-12 01:30:22 【问题描述】:我正在尝试监控哪些服务工作者处于活动状态(即哪些用户打开了浏览器)。我想出了一个解决方案,它通过 Web 推送 API 发送一个简单的 ping,这会触发 service worker 向我的服务器发送一个 ping 请求。但是我发现如果我不向用户显示通知,我会收到来自 Chrome 的警报。
This site has been updated in the background
是我做错了什么,还是有其他方法可以解决这个问题?
【问题讨论】:
【参考方案1】:不,你没有做错任何事。这是设计使然。
不可能在后台使用 Web Push API 联系 Service Worker 并且让系统不告诉用户。您正在描述一个被动跟踪系统,即使用户没有使用产品,您也可以在其中跟踪用户,并且受到软件设计的限制。当您使用 Web Push 时,您应该显示您自己的通知(API 用于通知),如果您不这样做,这就是浏览器所做的。
我知道能够从服务器联系 SW 并让它运行一些小差事会非常好,但不幸的是,这也可以进行一些恶作剧。你也不能,例如。保持打开一个 WebSocket(在 SW 中不可用)或安排未来的任务让它 ping(不保证运行)。
【讨论】:
这是有道理的。谢谢以上是关于Ping service worker 不显示通知的主要内容,如果未能解决你的问题,请参考以下文章
Javascript Service Worker 通知超时
service-worker 可以停止 GCM api 发送的推送通知吗?