gpt4 book ai didi

angular - Service Worker 中的后台同步在 android 上的 chrome 中不起作用

转载 作者:行者123 更新时间:2023-12-04 20:26:29 27 4
gpt4 key购买 nike

我已将 PWA 添加到 Angular 应用程序中。

下面是服务 worker 内部的代码,它监听同步事件。一旦 Service Worker 检测到 Internet 连接,它就会触发此同步事件。

self.addEventListener('sync', function (event) {
console.log('syncing started.');
event.waitUntil(getAllrecordsAndPost());
});

在组件中:

同步事件注册:
navigator.serviceWorker.ready.then(function(swRegistration) {
return swRegistration.sync.register('myFirstSync');
});

这在桌面的 chrome 中工作正常,但在 android chrome 上,后台同步事件不起作用。

仅供引用:我使用的是最新的 chrome 版本(79)。

编辑:

经过进一步调查,我发现同步事件被触发,但在该同步事件中写入了获取代码,这给出了错误,这就是后台同步不起作用的原因。下面是监听同步事件并点击 API 的代码。
 (function () {
'use strict';

self.addEventListener('sync', function (event) {
event.waitUntil(postUrl());
});

function postUrl() {
let url = 'http://mytesturl.com/testAPI';
let data = {name:'test',age:10};
fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: data
}).then((result)=>{
console.log('successful');
}).catch((x)=>{
console.log('error ' + x);
})
}
}());

在控制台中,我收到错误: error TypeError: Failed to fetch

最佳答案

https://web.dev/periodic-background-sync/表示后台同步仅适用于“已安装”的 PWA 并作为单独的应用程序启动(而不是作为浏览器中的选项卡) - 您能否澄清您是否尝试在这些条件下启动它?

关于angular - Service Worker 中的后台同步在 android 上的 chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59693184/

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