即使Chrome或Firefox被关闭,是否有方法显示桌面通知?

13
我们正在开发一个网站,使用GCM向终端用户发送推送通知。我们已经通过了Service Worker的学习。我们使用这个codelab教程开发出了一个原型。目前它可以正常工作,但唯一的问题是通知只有在Chrome打开时才会显示。当Chrome关闭时,通知就不会到达用户。
我想知道是否有任何方法可以解决这个问题,并在浏览器关闭时显示通知,类似于Safari推送通知。谢谢!
3个回答

16
如果您在manifest.json文件中拥有一个名为 "background" 的权限,即使Chrome窗口关闭,您的后台页面也能够显示通知。
"permissions": [
    "background"
],

根据文档所述:

任何安装的托管应用、打包应用或扩展程序拥有“后台”权限时,Chrome会在用户登录计算机后立即运行(隐形运行)——在用户启动Chrome之前。 “后台”权限还使Chrome保持运行状态(即使其最后一个窗口已关闭),直到用户明确退出Chrome。

对于托管应用程序,您需要使用后台页面事件页面后台窗口来使用“background”权限。

对于Web,使用Chrome和其他浏览器的Push API。使用推送消息的优点是,即使关闭了您的页面,您的服务工作者也将被唤醒并能够显示通知。 WebSockets和EventSource在页面或浏览器关闭时连接被关闭,因此不建议使用。这里是文档示例


2
他们正在谈论Chrome应用和扩展程序。它能在网站上工作吗? - Sivaprasanna Sethuraman

1
在Chrome中,只有安装了需要后台模式的扩展程序(如Hangouts)的用户才能在Chrome未运行时接收推送通知。依赖此功能似乎不是一个好主意。Chrome团队似乎也在考虑将其用于Web推送,但目前尚无预计时间。

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


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接