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];
我有同样的问题!但在我的情况下,我无法更改图像名称。我必须清理我的网络视图...任何想法? – iWheelBuy 2012-11-02 08:35:43
我的解决方案是更改图像的url,以便强制在不使用缓存的情况下获取图像。 为什么你不能改变图像的网址?你必须加载图像,对吧? – 2012-11-03 11:25:17
我改变了图片网址!现在工作正常。更改网址是一件困难的事情。该项目非常大,这不是我的项目。无论如何,你的解决方案竟然是唯一的选择。谢谢! – iWheelBuy 2012-11-05 02:20:04