【问题标题】:How can I wake up service worker when browser closed浏览器关闭时如何唤醒服务人员
【发布时间】:2020-02-04 02:34:21
【问题描述】:

我在玩服务工作者的东西。 我已经做到了以及清单 json。 我想在以下情况后触发服务工作者启动:

添加了推送集成并从服务器端发送推送通知。在客户端收到它,但前提是我在我的应用程序页面中。

以下是我想尝试启动 service worker 的步骤:

  1. 第一次打开网页
  2. Service - Worker 已安装
  3. 我完全关闭了浏览器
  4. 我重新打开浏览器
  5. 现在我需要触发 Service -Worker 启动 - 如何?

我想知道我可以使用什么,或者我需要在我的 service worker js 或 manifest json 中添加什么以使这种情况成为可能。

【问题讨论】:

    标签: service-worker progressive-web-apps manifest.json service-worker-events


    【解决方案1】:

    你不能像那样启动 Service Worker

    Service Worker 由浏览器处理并在匹配事件发生时启动。 Web 推送通知就是这样一个事件。如果用户已接受从您的 Web 应用程序的后端服务器接收通知,则推送通知将通过 Service Worker 显示给用户,即使该用户不在您的网站上。

    但是你不能“只是启动”Service Worker,并在浏览器打开而不访问你的页面时让它做一些事情。

    我强烈建议您阅读 Google 的关于推送通知的 Web 基础系列:https://developers.google.com/web/fundamentals/push-notifications

    【讨论】:

    • 感谢您的回答。我已经实现了推送通知和监听适当的事件。另外我在关闭浏览器后收到通知是后台同步,我希望这将是解决方案。
    • 后台同步是一个完全不同的功能。不需要简单地获得通知。你认为它提供了什么“解决方案”?
    • 如文档中所述 后台同步是一种新的 Web API,可让您推迟操作,直到用户具有稳定的连接。这对于确保用户想要发送的任何内容都被实际发送很有用。在我的情况下,当我关闭浏览器但继续接收通知时解决了这个问题(在服务器端,我循环发送通知以检查)。
    • @Hhovhann 您能否分享一下您在“后台同步”中所做的事情以及在浏览器关闭时如何显示通知?
    猜你喜欢
    • 2014-01-08
    • 1970-01-01
    • 2017-01-05
    • 2012-09-25
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多