我有一个可离线运行的渐进式Web应用程序,但是有时当我离线且不在“书签”中时,我打开它时,出现白色屏幕,错误为:"Safari cannot open the page. The error was: "FetchEvent.respondWith received an error: TypeError: The Internet connection appears to be offline."
我想这是来自服务工作者的“ Fetch”事件,这是我的代码:
self.addEventListener('fetch', function (event) {
const {
request,
request: {
url,
method,
},
} = event;
if (event.request.url.startsWith(self.location.origin)) {
event.respondWith(
caches.match(event.request)
.catch(function(error){
return;
})
.then(function (res) {
if (event.request.method == 'POST' && !navigator.onLine) { //Prevent POST since they give errors.
if (res != 'undefined') {
return res;
}
return fetch(event.request);
} else {
return fetchAndUpdate(event.request);
}
})
);
}else{
return;
}
})
我错过了什么吗?还是我看错地方了?任何建议将不胜感激!