我目前正在为iOS开发一个脱机网络应用程序。它使用ServiceWorker和CacheStorage API离线存储应用程序代码。
在iOS 11中,一切正常。 从iOS 12开始,每次重新启动浏览器时,都会清除CacheStorage。
我就如何重现此内容进行了一些演示: 它向您显示页面/主机上有哪些缓存,然后创建一个带有图片的新缓存。因此,下次访问时,应该已有一个缓存。
我在包括最新的Chromium和Firefox在内的桌面浏览器上进行了测试。
使用iOS 11.4.x Safari,它可以工作。 使用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>
答案 0 :(得分:0)
您是否尝试安装(将其置于主屏幕),也许可以解决该问题。