【问题标题】:Clearing UIWebView Cache on ios清除 ios 上的 UIWebView 缓存
【发布时间】:2013-09-09 12:57:43
【问题描述】:

我有一个 Phonegap 应用程序,我需要在某些时候删除 html 缓存,因为我已经更新了应用程序中的图像。

我已经试过了:

[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];

通过 javascript 在插件中调用,我这样做:

location.reload( true )

但我仍然看到似乎被缓存的相同图像。

还有其他方法吗?我可以告诉用户退出应用程序并杀死它,然后重新启动它。

谢谢!!

【问题讨论】:

  • 您能告诉我们您使用的是哪个版本的CORDOVA吗?我们遇到的问题是 UIWEBVIEW 在应用程序退出后立即清除缓存。因此,当我在 WIFI 关闭的情况下运行应用程序时。没有图像出现。 Please see our query Here
  • 我认为这是应用关闭后清理内存的 ios 行为。

标签: javascript ios cordova


【解决方案1】:

这些都没有帮助我。

我担心我将不得不求助于生成唯一的文件名并在完成后进行清理。

效果很好。

<img src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAeu
... snip data ....
YII=">

How to display Base64 images in HTML?

【讨论】:

    【解决方案2】:

    你可以通过在url后面加上时间戳来解决这个问题。然后你可以确保你每次请求的url都不一样。

    就像这样:http://www.demo.com/xxxx?t=timestamp。

    javascript代码是这样的:

    var url = 'xxxx/xxx?timestamp=' + Date.now();
    

    【讨论】:

      【解决方案3】:

      您可以拥有图像的 URL 版本控制系统。正如我在这里提到的。

      http://www.abksharma.in/2013/10/caching-using-javascript-versioning.html

      请求具有以下 URL 参数的图像。

      http://s.wordpress.org/screenshots/3.5/ss5-dfw.gif?1
      http://web-sniffer.net/
      Above is truly cached image with below headers
      

      我们可以在下面使用 DATA。

      How to Enable ajax request caching for semi dynamic data (ie JSON)?

      【讨论】:

        【解决方案4】:

        您可以尝试完全删除应用中的缓存目录,例如在应用第一次启动时

        【讨论】:

          猜你喜欢
          • 2011-07-25
          • 1970-01-01
          • 2013-02-09
          • 2011-02-01
          • 2013-07-24
          • 2015-04-13
          • 2015-03-22
          • 1970-01-01
          相关资源
          最近更新 更多