我想添加一个 Service Worker(除了现有的“flutter_service_worker”之外)。
我遇到的问题是我无法让两者同时处于活动状态。我不太明白范围问题。
当我注册 Service Worker 时,我在 index.html 中执行以下操作:
navigator.serviceWorker.register("./sw.js", { Scope: "/". });
然后我安装它并在缓存中激活它,但它与原始版本重叠。
应该使用哪个范围来保持两个 Service Worker 都处于活动状态?
使用不同的范围定义新添加的 Service Worker 的范围。
由于服务工作人员每个范围只允许一个注册,即您不能在同一范围内运行多个服务工作人员。
navigator.serviceWorker.register("{service-worker}", { Scope: "/{scope-goes-here}"});
对于颤振网络:
如果您尝试在 Web 上添加推送通知支持,请在 Flutter 的默认 Service Worker 注册之前在您的 index.html 文件中添加如下范围:
navigator.serviceWorker.register('firebase-messaging-sw.js',{scope: "/firebase-messaging-sw.js"});