我已经使用 fcm 文档为 web 实现了 FCM。如果我将 url 设置为:' http://xxx ' 我没有错误,一切都会好起来的。但是当我设置 url : ' https://xxx ..' 时,出现错误:
“无法注册 ServiceWorker:获取脚本时发生 SSL 证书错误。” code: "messaging/failed-serviceworker-registration" "Messaging: 我们无法注册默认的 service worker。注册 ServiceWorker 失败:获取脚本时发生 SSL 证书错误。(messaging/failed-serviceworker-registration)。 ”
谁能告诉我如何解决这个错误?
tro*_*tze 12
当想要在没有适当 SSL 证书的本地开发环境中测试 Service Worker 时,这是一个普遍问题。它并不特定于 Firebase 消息传递,而是与一般的 Service Worker 相关。
这是我在使用 Google Chrome 时找到的解决方案:使用自签名证书在本地测试服务工作者
不幸的是,我还不知道如何解决其他浏览器的问题,但可能必须有类似的方法。
对于 Chrome,您需要启动一个新的 Chrome 实例,并使用一些标志告诉它忽略本地源的 SSL 证书错误:
在 Linux(也可能是 Mac)中:
google-chrome --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://127.0.0.1 --user-data-dir=/tmp/foo
Run Code Online (Sandbox Code Playgroud)
在https://127.0.0.1这里就是你的应用程序(和服务人员)被本地托管的位置。如果在与标准 HTTPS 端口 443 不同的端口上提供服务,您可能需要调整它以使用适当的端口,例如https://127.0.0.1:3000,在端口 3000 上通过 HTTPS 为您的应用程序提供服务时。这--user-data-dir=/tmp/foo是启动新实例的必要条件,新用户profile,如果另一个 Chrome 实例已经在运行。
在 Windows 中(可能会有所不同,具体取决于 chrome.exe 所在的位置):
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost:1123
Run Code Online (Sandbox Code Playgroud)
同样,您可能需要调整端口。
| 归档时间: |
|
| 查看次数: |
6241 次 |
| 最近记录: |