当用户第一次运行我的应用程序时,我已加载所有图像并将其保存到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>
答案 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”。
希望它有所帮助。