无法在导航器中找到 serviceWorker

IT技术 javascript google-chrome service-worker
2021-03-08 15:35:06

自从 Google Chrome 的新更新(版本 69.0.3497.92(官方版本)(64 位))以来,我在导航器中再也找不到 serviceWorker 服务了。实际上,我可以按如下方式注册我的 Service Worker,但现在我收到一个错误,在导航器中找不到 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!');

我现在如何再次使用 Service Worker,或者如何让它为所有 Chrome 版本再次运行?

5个回答

通过 HTTPS 提供您的页面或使用localhost. Service Worker需要一个Secure Context

MDN 页面Chromium 页面)。

的值window.isSecureContext指示[SecureContext]要素是可见还是隐藏。(这是true在一个file://URL 上,serviceWorker API 将是可见的,但它当然不起作用。)

哦,是的,你完全正确。我试图通过本地 IP 访问 Service Worker。使用 localhost 它再次工作。
2021-04-22 15:35:06
有谁知道如何在我的本地开发机器上的虚拟主机上允许这个?我在不同的 .test 域下有几个项目指向我的本地开发机器。所以我在本地主机上只有 Chrome 看不到它。还是我应该使用另一个 TLD?
2021-05-08 15:35:06

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

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

然后添加您的域,例如 http://my-local-dev-domain.test

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

适合我!谢谢
2021-04-21 15:35:06
对我来说也是完美的答案
2021-05-05 15:35:06

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

请检查问题并再次提问,因为给定的信息不足以理解和回答。
2021-04-22 15:35:06
嗨,梅德洛。请阅读如何回答并尝试将其编辑为清晰且有用的答案。
2021-05-18 15:35:06

转到用户>扩展选项中的 vscode 设置,向下滚动到实时服务器配置

将您的主机设置为 localhost --ScreenShot 将主机设置为本地主机

现在向下滚动并取消选中使用本地 IP 选项 -- ScreenShot取消选中 localIP

转到您的端口 json 设置并将端口设置为 8080 --ScreenShot json 设置 将端口设置为 8080 上线 并检查控制台

相反 http:// 192.168.1.105 :8080/ 转到 http:// localhost :8080/ 它对我有用