我目前正在为iOS开发一个离线应用程序。它使用ServiceWorker和CacheStorage API来脱机存储应用程序代码。
在iOS 11中,一切都很好。从iOS 12开始,每次重新启动浏览器时,CacheStorage都会被清除。
我设置了一个关于如何重现的演示:它向您展示页面/主机上存在哪些缓存,然后创建一个包含图片的新缓存。因此,下次您访问它时,应该会有一个现有的缓存。
我在桌面浏览器上进行了测试,包括最新的Chromium和Firefox,这两种浏览器都能工作。
使用iOS 11.4.xSafari,它可以工作。对于iOS 12.x (12.0,12.1,12.1 beta 5) Safari,它不起作用。使用不同的iPad和iPhone设备进行测试。
所以问题是:有没有人知道我做错了什么,是苹果改变了API,还是这只是苹果的错误?如果有人有类似的问题,我也会感兴趣,因为我没有发现任何与此相关的问题。
测试页的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Home Page</title>
</head>
<body>
<script>
caches.keys().then(function(keys){
alert("keys: "+keys+" size: "+keys.length);
});
caches.open("test").then(function(cache){
cache.add("mario.png");
alert("cache opened");
});
</script>
</body>
</html>发布于 2018-10-31 15:29:17
你有没有试过安装(把它放在主屏幕上),也许这会修复它。
https://stackoverflow.com/questions/53085271
复制相似问题