【问题标题】:Is it possible to use service worker to show notifications when user is on website?当用户在网站上时,是否可以使用服务人员显示通知?
【发布时间】:2018-07-27 08:19:48
【问题描述】:

我有一个网站,我可以在其中注册服务人员以获取推送通知。有两种情况可以显示即将到来的通知:

  • 用户不在网站上,但浏览器已启动:service worker 处理事件并显示通知。

  • 用户在网站上:网站处理收到通知的事件并显示它。

即使用户在网站上,Service Worker 是否可以始终处理事件?如果可以怎么办?

这样做的目的是不向我的每个网站页面添加事件处理程序。

提前感谢您的任何澄清,

【问题讨论】:

  • 服务工作者,在后台工作。即使用户不在页面上。如果用户在网站上,我认为服务人员不会触发该事件,因为我没有这方面的经验。你考虑过阅读service workers documentation?
  • Service Worker 运行在浏览器的后台线程中,只要计算机运行,该线程就会运行。 webworker和webworker可以通过消息进行通信,webworker可以尝试将消息重定向到webworker,如果webworker没有响应,则自行处理
  • @Variable 感谢您的回复,我会查看您给我的链接,但从之前的研究中,我找不到那个特殊情况:/
  • @JonasW。我不需要将推送通知从我的服务人员重定向到我的网站,而只需服务人员每次都处理它,即使用户在网站上也是如此

标签: javascript push-notification service-worker


【解决方案1】:

即使用户在网站上,Service Worker 也能始终处理事件吗?

是的,无论浏览器当前打开的页面如何,或者浏览器是否完全打开,它们都会运行。它们只依赖于浏览器后台线程来运行,通常总是在客户端运行时运行。

【讨论】:

  • 问题是在网站上时,服务人员没有显示通知。我需要在我的网站上添加一个事件处理程序来显示它。
【解决方案2】:

我在那里找到了一个答案:https://developers.google.com/web/ilt/pwa/introduction-to-push-notifications#handling_the_push_event_in_the_service_worker

push event 是服务工作者需要处理的事件,以便之后显示推送通知。

通过这样做,即使 webapp 是否处于焦点,服务工作者也会“看到”推送消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多