У меня есть Прогрессивное веб-приложение, которое работает в автономном режиме, но когда оно добавлено в «Домашний экран» на iOS, а у вас go Режим полета (в автономном режиме), отображается экран:
Safari cannot open the page
The error was:
"FetchEvent.respondWith received an error: TypeError: The internet connection appears to be offline."
Я знаю, что это происходит из-за события fetch на сервисном работнике, потому что он пытается передать запрос 'POST', что следует предотвратить, потому что они вызывают ошибки, и я не хочу их кэшировать. Я попытался перехватить ошибку или просто записать ошибку, но я продолжаю видеть этот экран, есть ли способ просто игнорировать запрос «POST» для предотвращения этого экрана
Вот мое событие fetch на моем сервисном работнике
self.addEventListener("fetch", function(event) {
if (event.request.method == "POST") {
return;
}
event.respondWith(
caches
.match(event.request)
.then(function(res) {
if (!navigator.onLine) {
if (res) {
return res;
}
return fetch(event.request);
} else {
return fetch(request).then(function(res) {
if (res) {
return caches.open(version).then(function(cache) {
return cache.put(request, res.clone()).then(function() {
return res;
});
});
}
});
}
})
.catch(function(err) {
console.log("error", error);
})
);
});