Safari 无法打开页面 FetchEvent.respondWith 收到错误:NotSupportedError: 不支持该操作 (WebKitServiceWorker:0)

问题描述 投票:0回答:1

我已经迁移到Odoo16。 使用Firefox、Chrome等浏览器,所有网站页面都可以。

但是使用 Safari,当我进入这个特定页面 https://www.samadeva.com/event 时,我收到此错误:

Safari 无法打开页面 « https://www.samadeva.com/event 错误:。 FetchEvent.respondWith 收到错误:NotSupportedError:不支持该操作..(WebKitServiceWorker:0)

当我打开私有窗口或空缓存时,我成功渲染了页面。 到目前为止,我以为我已经解决了问题...

但过了一段时间,该网站的一些访问者报告说同样的问题再次出现......

我可以使用旧版本的 Safari (15.6) 来调查此问题:

似乎这个与 Safari WebKitServiceWorker 相关的问题也曾在 Angular 中发生过:https://github.com/angular/angular/issues/50378

...这个问题在 Safari 中众所周知:https://developer.apple.com/documentation/safari-release-notes/safari-17_2-release-notes#Service-Workers ... 但到目前为止,每个人都需要为使用 16.3...

的访问者提供解决方法

知道如何在我的odoo16页面的serviceWorker中实现这种类型的解决方法(由@gudvincent for Angular找到)https://www.samadeva.com/event/service-worker.js

 if (navigator.userAgent.includes("Version/17.0") || navigator.userAgent.includes("Version/17.1")) {
  navigator.serviceWorker.getRegistrations().then(function (registrations) {
    for (let registration of registrations) {
      registration.unregister();
    }
  });
}

 ServiceWorkerModule.register('ngsw-worker.js', {
   enabled:
     !navigator.userAgent.toUpperCase().includes("LIKE MAC")
       ? true
       : ((navigator.userAgent.includes("Version/17.0") || navigator.userAgent.includes("Version/17.1")) ?
         false : true)
 })
safari service-worker odoo-16
1个回答
0
投票

作为解决方法,我刚刚将这些 javascript 行注入到我网站的 head 标签中:

 if (navigator.userAgent.includes("Version/17.0") || navigator.userAgent.includes("Version/17.1")) {
  navigator.serviceWorker.getRegistrations().then(function (registrations) {
    for (let registration of registrations) {
      registration.unregister();
    }
  });
}
© www.soinside.com 2019 - 2024. All rights reserved.