我是服务人员的新手,正在尝试开发一个来处理背景图片上传。我正在使用 Workbox 和 firefox 进行测试。服务工作者已正确加载和注册,每当我尝试离线上传图像时,这些日志都会出现在控制台中:
“/photoUpload”的工作箱请求已添加到后台同步队列“PhotoQueue”
工作箱使用 NetworkOnly 响应“/photoUpload”
在我上线前几秒钟后,日志中打印了以下内容,并且照片没有上传到服务器:
工作箱后台同步重播没有后台同步事件
'/photoUpload' 的工作箱请求已在队列 'PhotoQueue' 中重播
工作箱队列'PhotoQueue'中的所有请求都已成功重播;队列现在是空的!
这是我的 serviceWorker.js:
const showNotification = () => {
self.registration.showNotification('Post Sent', {
body: 'You are back online and your post was successfully sent!',
});
};
const bgSyncPlugin = new workbox.backgroundSync.Plugin('PhotoQueue', {
maxRetentionTime: 24 * 60, // Retry for max of 24 Hours
callbacks: {
queueDidReplay: showNotification
}
});
workbox.routing.registerRoute(
new RegExp('/photoUpload'),
new workbox.strategies.NetworkOnly({
plugins: [
bgSyncPlugin
]
}),
'POST'
);
有没有办法触发后台同步事件?为什么工作箱在图像上传到服务器之前从队列中删除 POST 请求。