即使浏览器关闭,Service Worker 是否在后台运行?

Does service worker runs on background even if browser is closed?

只有当我打开 chrome 时,我才能在 chrome 中看到 Facebook 网页的推送通知。我知道这个通知是通过 service worker 发送的。我想知道这个后台同步是在浏览器关闭时还是在打开时继续进行 chrome 只有这些 service-worker 同步进程开始并开始发送推送通知。

首先要说的是这在某种程度上取决于平台。我对chrome的理解是:

在 windows 和 Mac 等桌面平台上 OS X 浏览器需要一些后台进程 运行ning 服务工作者才能 运行。在 Mac OS X 上,这很容易检测到,因为浏览器可以没有 windows 打开,但浏览器下方仍然有发光点。

在移动平台上更容易侦听事件并以高效的方式处理它们,因此在这些情况下,平台可以唤醒浏览器,然后浏览器将处理任何相应的事件。

以上内容适用于 api 的任何服务工作者。

在桌面上:如果浏览器完全关闭,则服务人员无法运行并且不会调度任何事件(即没有推送或后台同步事件)

在移动设备上:仍将调度事件(即当用户设备联机时将触发后台同步,将接收推送并引发推送事件)。

如果浏览器关闭,我认为服务人员将无法 运行。因为 service-worker 只有在我打开浏览器后才能发送推送通知。如果它在后台 运行ning 那么即使在关闭浏览器后它也可以发送通知。

有点跑题,但可以写 Chrome 扩展名 background script can run if Chrome is allowed to run in the background (configurable in settings). It can also use GCM