【问题标题】:How to keep UIWebView from caching images?如何防止 UIWebView 缓存图像?
【发布时间】:2014-04-21 22:32:01
【问题描述】:

我正在使用 UIWebView 在 IOS 应用程序中显示 HTML 页面。 HTML 页面包含我在本地磁盘上创建并写入的 png 文件。第一次显示页面时一切正常,但是当我尝试创建新图像并重新显示页面时,会显示原始图像。

问题似乎是我对 PNG 文件使用了相同的文件名。即使我使用新图像写入 PNG 文件,UIWebView 仍在缓存来自原始加载的图像,并显示原始图像,而不是新图像。我已通过将新图像加载到 Safari 来验证新图像是否已正确写入。

那么如何清除 UIWebView 对这张图片的缓存呢?我意识到另一种选择是在每次创建 png 文件时给它一个不同的文件名,但是我要么累积 png 文件,要么在完成后必须添加代码来清除 png 文件——我宁可不做。

【问题讨论】:

    标签: ios caching uiwebview


    【解决方案1】:

    看看this answer:

    NSString *testURL = [NSString stringWithFormat:@"%@?t=%@", url, randQuery];
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:testURL] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:10.0]];
    

    【讨论】:

    • 对不起,我没有关注。我将静态 html 放入 UIWebView。本身没有 URL。静态 HTML 中有一个 标记,并且 xx.png 文件正在被缓存。看来您是在说我应该生成一个随机 URL,,,?
    【解决方案2】:

    你可以试试:

    NSString *theURL = [NSString stringWithFormat:@"%@?t=%@", url, [[NSProcessInfo processInfo] globallyUniqueString]];
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:theURL] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:8.0]];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-19
      • 2016-11-03
      • 1970-01-01
      • 2013-12-18
      • 2015-11-06
      相关资源
      最近更新 更多