ServiceWorker LifeTime & &;推送通知

ServiceWorker LifeTime & Push Notifications

本文关键字:通知 LifeTime ServiceWorker      更新时间:2023-09-26

我有一个关于ServiceWorkers的问题。我知道这些工人可能会被用户代理终止。被终止的ServiceWorker还能接收推送通知并唤醒它们吗?

如果没有,是否有关于服务通常允许运行多长时间的信息?我的目标是Chrome桌面以及Chrome移动。

我很好奇我能在多大程度上依赖工人,我能在多大程度上把他们集成到我的进一步的应用程序。

编辑:我真的没有预料到的:如果我去这个例子,手动停止Service Worker(应该等于通过用户代理终止),然后提交一个推送通知,Service Worker被恢复。

因此,我假设推送通知可以唤醒被终止的service worker。有什么限制吗?

被终止的service worker仍然能够处理push事件。当浏览器检测到来自Web push服务器(例如Google Cloud Messaging)的传入推送通知时,它将启动相应的service worker。传入的推送消息包括注册信息,它允许浏览器确定要启动哪个特定的service worker。

为了让浏览器接收来自Web push服务器的传入推送通知,需要满足一些要求。

在桌面操作系统上,需要运行实际的浏览器进程。因此,例如,如果你是OS X上的Chrome用户,并且你退出了Chrome,你将不会收到任何推送通知,直到你再次启动Chrome。(在这一点上,一群人可能会同时涌入。)

在Android上,与Web Push服务器的连接是通过操作系统处理的,Chrome(我相信Firefox)不必"运行"来处理传入的通知并启动正确的service worker。