我们正在开发一个使用 GCM 向最终用户发送推送通知的网站。我们已经了解了 Service Worker 等所有内容。我们用这个开发了一个原型codelab https://developers.google.com/web/fundamentals/getting-started/push-notifications/?hl=en教程。到目前为止,它可以正常工作,但唯一的问题是只有在打开 Chrome 时才会显示通知。当 Chrome 关闭时,通知不会到达用户。
我想知道有什么方法可以克服这个问题,即使在浏览器关闭时也显示通知,类似于 Safari 推送通知。提前致谢!
如果你有一个“背景 https://developer.chrome.com/extensions/declare_permissions#background" 在manifest.json中获得权限,即使Chrome窗口关闭,您的后台页面也将能够显示通知。
"permissions": [
"background"
],
如中所述文档 https://developer.chrome.com/extensions/declare_permissions:
当任何已安装的托管应用程序、打包应用程序或扩展程序具有“后台”权限时,Chrome 浏览器会在用户登录计算机后立即运行(在用户启动 Chrome 之前)。 “后台”权限还使 Chrome 继续运行(即使在最后一个窗口关闭后),直到用户明确退出 Chrome。
您需要使用“后台”权限背景页 https://developer.chrome.com/extensions/background_pages, 活动页面 https://developer.chrome.com/extensions/event_pages or a 背景窗口 https://developer.chrome.com/apps/app_window对于托管应用程序。
对于 Web,请使用适用于 Chrome 和其他浏览器的 Push API。使用推送消息的优点是,即使您的页面关闭,您的 Service Worker 也会被唤醒并能够显示通知。当页面或浏览器关闭时,Web Sockets 和 EventSource 的连接也会关闭,因此不建议这样做。这里是文档 https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web?hl=en and example https://developers.google.com/web/fundamentals/getting-started/push-notifications/?hl=en.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)