iOS6 - 如何清除主屏幕/独立Web应用程序的缓存?

Oli*_*ain 24 html5 web-applications ios

看起来Apple已经改变了主屏幕/独立网络应用在iOS 6中的工作方式.根据各种博客文章(示例),这些应用现在可以获得自己的专用空间来存储缓存文件,sqllite dbs,本地存储等,而不是像以前一样与Safari浏览器共享.

在iOS 6开发之前,我曾经虔诚地通过以下程序来清除缓存......

  1. 从主屏幕删除应用程序.
  2. 关闭Safari中的所有页面/选项卡.
  3. 最后在"设置">"Safari"中"清除Cookie和数据"或"清除数据".

不幸的是,现在Apple已经移动了目标帖子,这个程序似乎不起作用.清除之后,即使我的更改在Safari中被选中,当我添加到主屏幕并启动应用程序时,旧的HTML,JS等仍然被选中.

有谁知道如何可靠地完全清除iOS 6中的缓存?

one*_*esh 9

我无法验证正确清除缓存,但这对我有用:

为此,您需要在iOS设备上允许Web Inspector.转到设置> Safari>高级> Web检查器(必须处于活动状态)并且必须激活计算机Safari上的开发人员菜单.转到首选项>高级>激活开发人员菜单

  1. 使用USB电缆将设备连接到计算机
  2. 转到safari> Developpement>您的设备名称>检查应用程序(应用程序必须运行)
  3. 这将打开计算机上用于Web应用程序的检查器
  4. 检查器打开时清除缓存(命令+ alt + E)
  5. 检查器仍然打开时刷新计算机上的页面(命令+ R)

不知何故,Webapp缓存已被清除,我得到了非缓存代码.


小智 7

我发现了一个解决方法.只需在浏览新版本时遇到问题的用户在网页上添加一个链接...

<a href="javascript:top.frames.location.reload();">refresh</a>
Run Code Online (Sandbox Code Playgroud)

它就像地址栏上的iPhone/iPad刷新按钮一样工作!


Jac*_*man -1

只需将传递给 webview 的请求设置为 NSURLRequestReloadIgnoringLocalCacheData

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[self.webView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)

  • 这是从 Safari 访问的 Web 应用程序,而不是使用 Web 视图的本机应用程序。 (3认同)