Я добавил PWA в приложение angular.
Ниже приведен код внутри сервисного работника, который прослушивает событие syn c. Как только сервисный работник обнаруживает соединение inte rnet, он запускает это событие syn c.
self.addEventListener('sync', function (event) {
console.log('syncing started.');
event.waitUntil(getAllrecordsAndPost());
});
В компоненте:
Syn c регистрация события:
navigator.serviceWorker.ready.then(function(swRegistration) {
return swRegistration.sync.register('myFirstSync');
});
Это нормально работает в chrome на рабочем столе, но в android chrome событие background syn c не работает.
К вашему сведению: я использую последнюю версию chrome версия (79).
РЕДАКТИРОВАТЬ:
После дальнейшего изучения я обнаружил, что событие syn c запускается, но внутри этого события syn c a написан код для fetch, который выдает ошибку, и поэтому фоновая синхронизация c не работает. ниже приведен код, который прослушивает событие syn c и запускает 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