已关注 this tutorial我正在尝试将 Chrome 浏览器注册到 GCM,但无法订阅该浏览器:
我尝试在不使用按钮的情况下执行与以下示例相同的操作。一旦您接受了权限请求,我想获取订阅 ID,但它不起作用:
如果您想检查代码,这里是项目:
谢谢。
最佳答案
您提供的示例项目的问题是 Service Worker 永远不会准备好。
这是由于您的 Service Worker js 文件的位置所致。它存储在 js
目录中,因此其范围仅限于该目录中的页面,而服务工作线程请求的页面位于根目录中。
要使 Service Worker 可用于整个站点,您必须将其放在站点的根目录中。
根据W3C specification ,您还可以通过在 navigator.serviceWorker.register()
调用中设置 scopeURL
选项来手动设置 Service Worker 的范围。
关于javascript - Chrome 推送通知(注册并等待通知),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31068358/