我们正在开发一个网站,使用GCM向终端用户发送推送通知。我们已经通过了Service Worker的学习。我们使用这个codelab教程开发出了一个原型。目前它可以正常工作,但唯一的问题是通知只有在Chrome打开时才会显示。当Chrome关闭时,通知就不会到达用户。
我想知道是否有任何方法可以解决这个问题,并在浏览器关闭时显示通知,类似于Safari推送通知。谢谢!
我想知道是否有任何方法可以解决这个问题,并在浏览器关闭时显示通知,类似于Safari推送通知。谢谢!
"permissions": [
"background"
],
根据文档所述:
任何安装的托管应用、打包应用或扩展程序拥有“后台”权限时,Chrome会在用户登录计算机后立即运行(隐形运行)——在用户启动Chrome之前。 “后台”权限还使Chrome保持运行状态(即使其最后一个窗口已关闭),直到用户明确退出Chrome。
对于托管应用程序,您需要使用后台页面、事件页面或后台窗口来使用“background”权限。
对于Web,使用Chrome和其他浏览器的Push API。使用推送消息的优点是,即使关闭了您的页面,您的服务工作者也将被唤醒并能够显示通知。 WebSockets和EventSource在页面或浏览器关闭时连接被关闭,因此不建议使用。这里是文档和示例。
当浏览器或选项卡关闭时显示通知需要服务工作者和第三方服务(如Google Firebase)来触发服务工作者。
https://github.com/web-push-libs/ - 检查这些库的列表,以在不同平台上实现此功能。
https://github.com/rijoshrc/php-service-worker-push-notification - 克隆此git存储库以查看PHP中的简单实现。