Chrome 通知 - 即使在网站未打开时也能神奇推送

Posted

技术标签:

【中文标题】Chrome 通知 - 即使在网站未打开时也能神奇推送【英文标题】:Chrome Notifications - Magic Push even when the website is not open 【发布时间】:2015-07-28 17:22:06 【问题描述】:

我过去构建了一个 chrome 扩展程序,并且在该扩展程序中使用了 chrome 通知 API,因此我熟悉它的工作原理。

我最近发现这个网站在发生某些事情时会显示此通知,但最奇怪的是,即使该网站未在任何选项卡中打开,它也会推送这些通知(只要 chrome 处于打开状态)。我想知道他们是怎么做到的。

我检查了我的设置->扩展列表,看看我是否以某种方式安装了他们的扩展,但没有。那么他们从哪里运行这个神奇的 javascript 呢?

网站名为https://www.greentoe.com

【问题讨论】:

Push Notifications "这样做的原因是,当收到推送消息时,浏览器可以启动一个Service Worker,它在后台运行而不打开页面,并调度一个事件,以便您决定如何处理该推送消息。” 是的,但是当 Worker Service 在后台运行并推送这些通知时,必须有一些 Javascript 实际告诉 Worker Service 推送它们。通常情况下,它是 chrome 扩展程序或网站的 javascript。但即使网站未打开且未安装扩展程序,他们也会这样做。 你点击链接了吗?它指向谷歌开发者网站,其中包含您需要的所有信息的推送通知。文档、示例 repo、演示、... @Andreas 你介意对此做出一个实际的答案吗? 由于没有人提到它的名字,所以它被称为Push API。还有services like this 可以直接将其添加到网站/博客 【参考方案1】:

根据official documentation 和@Andreas 所述

这样做的原因是当收到推送消息时, 浏览器可以启动一个服务工作者,它在后台运行 没有打开页面,并调度一个事件,以便您可以 决定如何处理该推送消息。

您要求的 javascript 代码在 worker 内部。

如果您想查看浏览器中实际使用的工作人员,只需在新选项卡中转到chrome://inspect/#service-workers。您可以通过单击工作人员名称下的检查链接来查看工作人员代码。

【讨论】:

以上是关于Chrome 通知 - 即使在网站未打开时也能神奇推送的主要内容,如果未能解决你的问题,请参考以下文章

一旦来自附近位置的新数据进入relatime数据库,如何发送通知(当应用程序未打开时)?

应用未打开时不发送 GCM 消息?

Python 套接字库认为套接字在未打开时已打开

是否可以在 PWA 未打开时使用服务人员跟踪地理位置

MS Access 未打开时 DMax 功能不起作用

当应用程序未打开时,可以在 Firebase 消息服务中完成哪些任务?