3

当用户第一次运行我的应用程序时,我已加载所有图像并将其保存到库目录中的缓存文件夹中: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 加载,因为用户无法访问 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>
4

1 回答 1

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”,则图像 url 应该是相关的 url,例如“./imageCache/1.png”。

希望能帮助到你。

于 2012-08-29T04:32:58.880 回答