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