在导航器中找不到serviceWorker了

Die*_*ion 26 javascript google-chrome service-worker

自谷歌Chrome的新版本(版本69.0.3497.92(官方版本)(64位))以后,我无法在导航器中找到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!');
Run Code Online (Sandbox Code Playgroud)

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

Jos*_*Lee 54

通过HTTPS服务您的网页或使用localhost.服务人员需要一个安全的语境.

(MDN页面,Chromium页面).

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

  • 哦,是的,你完全正确。我试图通过本地 IP 访问 Service Worker。使用 localhost 它再次工作。 (4认同)
  • 有谁知道如何在本地开发机器上的虚拟主机上允许此操作?我在不同的.test域下有多个项目指向我的本地开发机器。所以我在localhost上只有Chrome没有看到它。还是应该使用其他TLD? (3认同)

Sea*_*256 32

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

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

然后像这样添加您的域 http://my-local-dev-domain.test

单击启用,然后单击重新启动按钮。

  • 适合我!谢谢 (3认同)