首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 12 CacheStorage API在浏览器重新启动后被删除。

iOS 12 CacheStorage API在浏览器重新启动后被删除。
EN

Stack Overflow用户
提问于 2018-10-31 14:03:58
回答 1查看 325关注 0票数 0

我目前正在为iOS开发一个离线应用程序。它使用ServiceWorker和CacheStorage API来脱机存储应用程序代码。

在iOS 11中,一切都很好。从iOS 12开始,每次重新启动浏览器时,CacheStorage都会被清除。

我设置了一个关于如何重现的演示:它向您展示页面/主机上存在哪些缓存,然后创建一个包含图片的新缓存。因此,下次您访问它时,应该会有一个现有的缓存。

  1. 转到https://itoobi.github.io/servicebreaker/
  2. 页面上写着“键:大小: 0”(当前为0缓存)。
  3. 它创建了一个名为"test“的新缓存,并表示”缓存已打开“。
  4. 重新加载页面
  5. 该页面现在写着“key: test size: 1”(存在1个缓存)(再次声明“缓存已打开”,但这在这里并不重要)
  6. 关闭浏览器(在iOS任务管理器中关闭它)
  7. 重新启动浏览器并重新加载页面
  8. 它现在应该再说一遍“键:测试大小: 1",因为应该有一个现有的缓存。->在iOS 12上,页面再次写着“键:大小: 0”

我在桌面浏览器上进行了测试,包括最新的Chromium和Firefox,这两种浏览器都能工作。

使用iOS 11.4.xSafari,它可以工作。对于iOS 12.x (12.0,12.1,12.1 beta 5) Safari,它不起作用。使用不同的iPad和iPhone设备进行测试。

所以问题是:有没有人知道我做错了什么,是苹果改变了API,还是这只是苹果的错误?如果有人有类似的问题,我也会感兴趣,因为我没有发现任何与此相关的问题。

测试页的代码:

代码语言:javascript
复制
<!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>
EN

回答 1

Stack Overflow用户

发布于 2018-10-31 15:29:17

你有没有试过安装(把它放在主屏幕上),也许这会修复它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53085271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档