【发布时间】:2020-01-18 20:41:50
【问题描述】:
我开发了一个 PWA - jcoonrod.github.io - 当我卸载它时 - 清除浏览器缓存 - 然后尝试转到该页面并重新安装它,我只看到旧版本 - 缓存似乎超过了PWA。如何在 android 上完全删除缓存的 PWA 文件?
【问题讨论】:
标签: android progressive-web-apps
我开发了一个 PWA - jcoonrod.github.io - 当我卸载它时 - 清除浏览器缓存 - 然后尝试转到该页面并重新安装它,我只看到旧版本 - 缓存似乎超过了PWA。如何在 android 上完全删除缓存的 PWA 文件?
【问题讨论】:
标签: android progressive-web-apps
如果你想清除 service worker 的存储,你可以通过你使用的浏览器的开发工具,或者通过代码来完成:
// To unregister a service worker
navigator.serviceWorker.getRegistration()
.then(function(registration) {
if(registration){
registration.unregister()
.then(
function(success) {
// if success = true, unregister was successful
});
}
});
// To remove the SW storage
if ('caches' in window) {
caches.keys()
.then(function(keyList) {
return Promise.all(keyList.map(function(key) {
return caches.delete(key);
}));
})
}
caches.keys() 方法返回 CacheStorage 的键,该接口表示服务工作者可以访问的 Cache 对象的存储。
我写了an article about Service Workers and caching strategies,以及如何清除存储的数据,你可以看看。
【讨论】: