在导航器中找不到 ServiceWorker 了

自从 Google Chrome 的最新版本(69.0.3497.92(官方版本)(64位))以来,我再也找不到 Navigator 中的 serviceWorker 服务了。实际上,我可以按照以下方式注册我的 ServiceWorker,但是现在我得到一个错误,在导航器中找不到 ServiceWorker:

if('serviceWorker' in navigator) {
/*
*
* Register the Service Worker
*
* */
navigator.serviceWorker.register('sw.js').then(function(registration) {
console.log('Service Worker Registered');
});


} else console.log('Your browser does not support the Service-Worker!');

我现在怎样才能再次使用 ServiceWorker,或者怎样才能让它在所有 Chrome 版本中再次运行?

44281 次浏览

通过 HTTPS 服务您的页面或使用 localhost.Serviceworker 要求 a 安全上下文

(MDN 页面铬页).

window.isSecureContext的值表示 [SecureContext]特征是可见的还是隐藏的。(这是 file:// URL 上的 true,serviceWorker API 是可见的,但它当然不能工作。)

如果您在本地使用虚拟主机作为本地主机以外的域,您可以告诉 chrome 将您的自定义域视为“安全”。

在地址栏: chrome://flags/#unsafely-treat-insecure-origin-as-secure

然后像 http://my-local-dev-domain.test那样添加域名

单击启用并单击重新启动按钮。

另一个原因可能是在私有模式下运行浏览器

转到 user > Extension 选项中的 vscode 设置,向下滚动到 live server config

将主机设置为 localhost —— ScreenShot 将主机设置为本地主机

现在向下滚动并取消选中 use local IP 选项—— ScreenShot 取消检查 localIP

进入 Port json 设置并将端口设置为8080—— ScreenShot < a href = “ https://i.stack.imgur.com/AohYs.png”rel = “ nofollow norefrer”> json 设置 将端口设置为8080 启动并检查控制台

相反, http://abc0:8080/去了 http://abc1:8080/ 对我很有效