javascript - Chrome 推送通知(注册并等待通知)

标签 javascript google-chrome google-cloud-messaging web-push push-api

已关注 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/

相关文章:

javascript - 正则表达式包括所有 Intranet 站点但不包括 http(s) ://localhost

android - 在 Android 版 Chrome 中通过 Google ID 自动登录

google-chrome - 没有链接的 Typescript blob 文件名

android - 如何在这个特定的 Android 用例中实现 MQTT?

google-cloud-messaging - 如何使用android gcm向所有注册用户发送消息?

android - 我可以通过 GCM 发送一些大数据吗?

javascript - Typeahead 不适用于 Bootstrap 3

javascript - 使 javascript 变量仅可用于同一 .js 文件上的函数

javascript - 如何通过react在express上向mailchimp发送post请求

javascript - 在 Chrome 中重新抛出错误以调试 javascript 的更好方法