我正在尝试在Chrome中测试推送通知功能。我在这里克隆了谷歌提供的示例Chrome推送通知web应用程序:https://github.com/GoogleChrome/samples/tree/gh-pages/push-messaging-and-notifications
当我在本地主机上使用Web server for Chrome extension HTTP服务器托管web应用程序时,代码工作正常。当我想在移动设备上测试web-app时,我不能使用Chrome扩展的Web服务器,因为它是HTTP服务器,而不是localhost,服务人员只在HTTPS上工作。因此,我使用自签名证书创建了一个基于python的HTTPS服务器,并在那里托管了web应用程序。
现在,我在注册服务工作者时获得了AbortError: Failed to register a ServiceWorker: ServiceWorker cannot be started,如下所示:
navigator.serviceWorker.register('./service-worker.js')service-worker.js与html文件和js文件在同一个目录中,我就是在这个目录中调用这个方法的。
关于服务工作者的文档并不多。此外,这个错误太模糊了,无法弄清楚任何事情。请帮我找出这个错误的根本原因。
发布于 2017-01-03 15:23:05
我找到了解决方案。服务工作者仅在安全的HTTPS网络上工作。我创建的Python HTTPS服务器是使用自签名证书签名的,因此不安全。我使用ngrok创建了一个到localhost的安全https隧道,然后它就工作了。
https://stackoverflow.com/questions/41430841
复制相似问题