gpt4 book ai didi

service-worker - Service Worker 中未触发定期同步

转载 作者:行者123 更新时间:2023-12-05 06:08:38 28 4
gpt4 key购买 nike

我正在尝试为我的网站使用后台定期同步。我正在使用 localhost 并在 1*1000 毫秒时注册 periodicsync 事件,但这根本不会触发。

我看过这个demo ,但即使我将该网站安装为应用程序,它也根本不会启动。

使用 chrome 87.0.4280.66。

但是,如果我从应用程序开发人员窗口手动触发定期同步事件,它会起作用。

最佳答案

只有在“大多数”基于 webkit 的浏览器中将应用程序安装为 PWA 时,periodicsync 事件才会正确注册

https://developer.mozilla.org/en-US/docs/Web/API/Web_Periodic_Background_Synchronization_API

关于何时实际触发的条件尚不清楚,并且取决于一些不确定的因素,例如用户对网站的参与度。

这就是为什么在注册周期同步时可以设置的参数是minInterval

此 block 将帮助您成功注册它,不幸的是,我不清楚周期性同步将触发的“现实世界”场景:

const status = await navigator.permissions.query({
// @ts-ignore
name: 'periodic-background-sync',
});

if (status.state === 'granted') {
navigator.serviceWorker.ready.then(async (sw: any) => {
await sw.periodicSync.register('periodicsync', {
minInterval: 1000,
});
})
.catch(error => {
console.error('[BackgroundSync] Error: ' + JSON.stringify(error, null, 2));
});
}
else {
console.error('[BackgroundSync] Does not have permission');
}
}

关于service-worker - Service Worker 中未触发定期同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65096834/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com