2012-07-17 35 views
6

我的应用程序包中有一些嵌入式html。我使用loadHtmlString加载它。同时,我的文档文件夹中有一些图像文件。我想用我的文档文件夹中的我的img替换我的img。例如,这里是样本HTML我有:如何清除我的UIWebView的loadHtmlString缓存?

 <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]; 

回答

7

我在我的网址添加时间解决了这个问题。所以图像不会被缓存。请参阅我的问题。这个问题被认为是封闭的。

+0

我有同样的问题!但在我的情况下,我无法更改图像名称。我必须清理我的网络视图...任何想法? – iWheelBuy 2012-11-02 08:35:43

+0

我的解决方案是更改图像的url,以便强制在不使用缓存的情况下获取图像。 为什么你不能改变图像的网址?你必须加载图像,对吧? – 2012-11-03 11:25:17

+0

我改变了图片网址!现在工作正常。更改网址是一件困难的事情。该项目非常大,这不是我的项目。无论如何,你的解决方案竟然是唯一的选择。谢谢! – iWheelBuy 2012-11-05 02:20:04