在UIWebView中重新发送html并从缓存加载图像

时间:2012-05-21 07:27:37

标签: iphone ios uiwebview

当用户第一次运行我的应用程序时,我已加载所有图像并将其保存到Library目录中的缓存文件夹: Library / Caches / imgcache / myApp / ready /

请说出名称为的文件 HTTP / __ wscdn.bbc.co.uk_worldservice_assets_images_2012_01_13_120113094952_international_space_station_304x171_reuters_nocredit.jpg

现在,当用户离开网络时,我使用loadHTMLString渲染html,如果html包含以前存储文件的任何img src,则从缓存加载而不是从Internet加载,因为用户无法访问互联网。

现在我的问题是如何处理这个问题?我怎样才能做到这一点 ?请帮帮我..

例如:

我有html字符串,

>"<div class="g-container story-body"> <div class="bodytext"> <div class="module "> <div >class="image img-w304"><img width="304" height="171" >src="http://wscdn.bbc.co.uk/worldservice/assets/images/2012/05/18/120518135959_facebook_304>x171_bbc_nocredit.jpg" alt=""/> <div class="module "> <div class="image img-w304"><img >width="304" height="171" >src="http://wscdn.bbc.co.uk/worldservice/assets/images/2012/05/18/120518145635_facebook_304>x171_bbc_nocredit.jpg" alt=""/><p class="caption"></p> </div> </div> <p></p> </div> </div> ><div class="g-container story-body"></div>"

我在用户文档文件夹中缓存了这两个图片, 现在,当用户无法访问网络时我想做类似的事情:

><div class="g-container story-body"> <div class="bodytext"> <div class="module "> <div >class="image img-w304"><img width="304" height="171" >src="**Library/Caches/imgcache/myApp/ready/**http://wscdn.bbc.co.uk/worldservice/assets/ima>ges/2012/05/18/120518135959_facebook_304x171_bbc_nocredit.jpg" alt=""/> <div class="module >"> <div class="image img-w304"><img width="304" height="171" >src="**Library/Caches/imgcache/myApp/ready/**http://wscdn.bbc.co.uk/worldservice/assets/ima>ges/2012/05/18/120518145635_facebook_304x171_bbc_nocredit.jpg" alt=""/><p class="caption">>>``</p> </div> </div> <p></p> </div> </div> <div class="g-container story-body"></div>

1 个答案:

答案 0 :(得分:3)

您可以通过webview的- (void)loadHTMLString:(NSString *)stringbaseURL:(NSURL *)baseURL方法使用图片缓存。您需要将baseURL指定到本地应用程序库目录。示例代码如下:

NSString * htmlContent = @"your html content";
NSString * path = [NSHomeDirectory() stringByAppendingPathComponent:@"Library"];
[_webView loadHTMLString:htmlContent baseURL:[NSURL fileURLWithPath:path]];

如果您的图片位置为“YourApp / Library / imageCache / 1.png”,则图片网址应为相关网址,例如“./imageCache/1.png”。

希望它有所帮助。