服务人员同步不会在android的情况下触发IM丢失了什么?在这里同样的事情:JavaScript Background Sync Stops Working if Page is Loaded/Refreshed while offline
debugging
H 110,然后按电源按钮以唤醒H 211H 112,然后按下myapp以唤醒应用程序(应用程序未关闭但被设置为睡眠)H 213/code>H 114然后我在usb电缆中单击某些按钮以启动同步,然后我看到-H<217/code>。
在控制台中,如果我再次单击电源按钮(黑色屏幕),然后再次单击电源按钮,它会醒来,或者我关闭wifi,然后打开wifi,则不会触发“注册”事件,但不会触发“同步”事件。
然后在控制台“寄存器”和“同步”中看到。
如果我花了30分钟,那么注册同步就会被删除。
客户端JS
var id = 'background-sync-' + (new Date()).getTime() + $.uniqid(6);
let postData = {
'type': 'background-sync',
'uuid': id,
};
registration.active.postMessage(postData);服务业工人一方
self.addEventListener('message', function (event) {
//console.log('message=' + event.data.type);
if (event.data.type === 'background-sync') {
registerSync(event.data.uuid, event.data);
}
});
self.addEventListener('sync', function (event) {
console.log('SYNC');
//event.waitUntil(syncIt(event.tag));
});
function registerSync(uuid, data) {
if (data != undefined && data != null) {
let id = data.id;
//append data to storage
syncStore[id] = data;
//this is important
syncStore[id]['sending'] = false;
}
console.log('REGISTER');
//console.log(data);
//console.log(self.registration.sync.getTags());
self.registration.sync.register(uuid)
.then(function () {
})
.catch(function (err) {
return err;
});
}发布于 2021-01-29 17:09:33
没有解决办法。即使是背景周期同步也不起作用。因此,我已经做了工作-发送定期的文章,如果可能的话,并使用background.sync作为离线数据同步。问题是,如果我单击电源按钮一次,然后同步请求设置为等待,如果第二次,那么同步请求将发送到服务器。
解决方案代码:
if( this.online ){
let self = this;
$.post(self.requestUrl, self.params, function (returnData) {
if( callback )
callback(returnData);
}).fail(function () {
window.backgroundSync(self.requestUrl, self.params, callback, self.storeData);
});
}
else {
window.backgroundSync(this.requestUrl, this.params, callback, this.storeData);
}https://stackoverflow.com/questions/65942049
复制相似问题