PWA后台同步注册失败是怎么回事?
我在尝试给PWA加上后台同步功能,但调用register()时一直报错,说“Background Sync is not supported”。明明我是在本地localhost下测试的,Chrome也支持啊?
这是我的service worker注册后的相关代码:
navigator.serviceWorker.ready.then(registration => {
return registration.sync.register('sync-posts');
}).catch(err => {
console.error('Sync registration failed:', err);
});
顺便附上我页面里引入的样式,虽然应该没关系……
.offline-badge {
background: #ff6b6b;
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
}
另外检查下 Chrome 版本够不够新,低版本 Chrome 的 Background Sync 是实验性功能,得手动开 flag。
还有种可能是你在 devtools 的 Application 面板里把 Service Worker 停用了,这种情况下 ready promise 会一直 pending。
核心排查点:打开 devtools 的 Console 和 Application 面板,看 SW 状态和具体报错信息。