即使Chrome或Firefox关闭,有没有办法显示桌面通知?

时间:2016-02-10 09:47:24

标签: google-chrome push-notification google-cloud-messaging web-push web-notifications

我们正在开发一个网站,该网站使用GCM向最终用户发送推送通知。我们已经通过服务工作者和所有人。我们使用这个codelab教程开发了一个原型。它目前正在运行,但唯一的问题是仅在打开Chrome时才会显示通知。 Chrome关闭后,通知无法覆盖用户。

我想知道有没有什么办法可以解决这个问题,即使浏览器关闭也会显示通知,类似于Safari推送通知。提前谢谢!

3 个答案:

答案 0 :(得分:11)

如果您在manifest.json中拥有“background”权限,即使Chrome窗口关闭,您的后台页面也会显示通知。

"permissions": [
    "background"
],

documentation中所述:

  

如果任何已安装的托管应用,打包应用或扩展程序具有“后台”权限,则只要用户登录其计算机,Chrome就会立即运行(无形) - 在用户启动Chrome之前。 “后台”权限还允许Chrome继续运行(即使在最后一个窗口关闭后),直到用户明确退出Chrome。

您需要对托管应用使用background pageevent pagebackground window的“后台”权限。

对于网络,请使用适用于Chrome和其他浏览器的Push API。使用推送消息的优点是,即使您的页面已关闭,您的服务工作人员也会被唤醒并能够显示通知。当页面或浏览器关闭时,Web套接字和EventSource的连接已关闭,因此不建议这样做。这是documentationexample

答案 1 :(得分:2)

在Chrome中。只有碰巧安装了需要后台模式的扩展程序的用户(如环聊)才能在Chrome未“运行”时接收推送通知。依靠它似乎不是一个好主意。

Chrome团队似乎也考虑将其用于网络推送,但到目前为止还没有ETA。

https://code.google.com/p/chromium/issues/detail?id=402456

答案 2 :(得分:0)

在关闭浏览器或选项卡时显示通知需要服务人员和第三方服务(例如google firebase)来触发服务人员。

https://github.com/web-push-libs/-检查这些库列表以在不同平台上实现。

https://github.com/rijoshrc/php-service-worker-push-notification-克隆此git存储库以查看PHP中的简单实现。