如何在 Flutter Web 上添加多个 Service Worker

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

我想添加一个 Service Worker(除了现有的“flutter_service_worker”之外)。

我遇到的问题是我无法让两者同时处于活动状态。我不太明白范围问题。

当我注册 Service Worker 时,我在 index.html 中执行以下操作:

navigator.serviceWorker.register("./sw.js", { Scope: "/". });

然后我安装它并在缓存中激活它,但它与原始版本重叠。

应该使用哪个范围来保持两个 Service Worker 都处于活动状态?

flutter service-worker flutter-web
1个回答
0
投票

使用不同的范围定义新添加的 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"});
© www.soinside.com 2019 - 2024. All rights reserved.