【问题标题】:How to clear cache for my UIWebView's loadHtmlString?如何清除我的 UIWebView 的 loadHtmlString 的缓存?
【发布时间】:2012-07-17 05:02:51
【问题描述】:

我的应用程序包中有一些嵌入的 html。我正在使用 loadHtmlString 来加载它。同时我的文档文件夹中有一些图像文件。我想用我的文档文件夹中的那个替换我在html中的img。例如,这是我拥有的示例 html:

       <div id="image">
            <a href="image">
                <img src="@image" class="center">               
            </a>
        </div>

我正在使用以下代码将@image 替换为我的文档中的文件路径:

    NSString* imgFile = [NSString stringWithFormat:@"file:///%@/%@",
                         [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Images"],@"myimage.png"];
    text = [text stringByReplacingOccurrencesOfString:@"@image" withString:imgFile];   

    NSURL* baseUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]];
    [self.webView loadHTMLString:text baseURL:baseUrl];    

(文本是​​我的html文件的html文本)。

第一次调用此代码时它可以工作。但是比如我修改了myimage.png,再次调用代码,还是会显示我修改前的图片。 (我已经在我的文件夹中检查了我的文件,它已经正确修改了)。

我怀疑它是由缓存引起的。有人可以建议吗?

谢谢

注意:

这是缓存造成的。我通过使用以下方法强制 UIWebView 加载图像的新副本解决了这个问题:

NSString* imgFile = [NSString stringWithFormat:@"file:///%@/%@?t=%d",
                         [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Images"],@"myimage.png",time(NULL)];
    text = [text stringByReplacingOccurrencesOfString:@"@image" withString:imgFile];

【问题讨论】:

    标签: caching uiwebview


    【解决方案1】:

    我通过在我的网址中添加时间解决了这个问题。所以图像不会被缓存。请参考我的问题。该问题被认为已关闭。

    【讨论】:

    • 我也有同样的问题!但就我而言,我无法更改图像名称。我必须清理我的网络视图...有什么想法吗?
    • 我的解决方案是更改图像的 url,以便在不使用缓存的情况下强制获取图像。为什么不能更改图片网址?无论如何,您都必须加载图像,对吗?
    • 我更改了图片网址!现在工作正常。更改网址是一件困难的事情。这个项目非常大,不是我的项目。无论如何,您的解决方案原来是唯一的解决方案。谢谢!
    • 我尝试了其他一些选项,例如更改缓存策略等,但它们都不起作用。在我的情况下,我的方法是最简单的。抱歉,我不知道如何在您的应用程序中简化它。
    猜你喜欢
    • 1970-01-01
    • 2013-02-09
    • 2011-02-01
    • 2011-07-25
    • 2013-04-16
    • 2013-09-09
    • 2015-03-22
    • 2013-07-24
    相关资源
    最近更新 更多