最近项目中,需要测试之前的
pwa相关的项目,去确认是否支持每个子页面注册桌面快捷应用。结果出现了在本地项目中无法调试,而线上的可以正常显示,相关代码是一样的。这就很奇怪,之前开发的时候,本地可以正常开发和测试。
- 同个谷歌浏览器,就排除跟谷歌浏览器版本的问题。
- 查看线上和本地环境有什么区别,最大的区别发现本地是通过ip代理,会出现
不安全的字眼,如下所示
而线上的确是正常的,没有不安全字眼。
所以怀疑是不是跟https 和http 有关系。
- 在两个页面里的控制台,分别输入以下代码,发现本地始终是
false,而线上都是true
"serviceWorker" in navigator
- 因此去MDN网站,查看浏览器的这个属性
serviceWorker,在不同协议里有什么区别。结果发现了,官方文档里有对应要求:
解决方法:
- 1、在本地调试,只要换成
localhost就可以正常调试。 - 2、在谷歌中,输入chrome://flags/#unsafely-treat-insecure-origin-as-secure 可以把对应不安全的网站设置为安全网站,操作如下:
成功后,不安全字眼就没了
- 官方相关文档:Service_Worker