我的申请中有两名服务人员。
第一个是由create-react-app通过workbox自动生成的,负责缓存静态构建资产,如编译的javascript和css文件。
第二个由我手动创建,负责在用户在应用程序中收到新消息时发送推送通知。
问题是,这两个都需要访问根作用域,我最近发现两个服务工作者不能共享一个作用域。
我该如何调和这一点?第二个服务工作者(用于推送通知)仅在用户单击以允许应用程序内的推送通知时注册,如下所示:
function subscribeUserToPush(cb) {
if ('Notification' in window && navigator.serviceWorker) {
return navigator.serviceWorker.register('/sw-notifications.js').then(function(registration) {
let subscribeOptions = {
userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array('the-code-qc=')
};
return registration.pushManager.subscribe(subscribeOptions);
}).then(cb);
}
}
除非在根作用域中,否则两者都不起作用。当限制只有一名服务人员可以使用每个范围时,我怎么能让他们都工作呢?