iphone app UIWebView缓存数据

时间:2010-07-05 07:29:27

标签: objective-c iphone

我需要一个UIWebView来显示一个html页面。如果互联网不可用,它将显示上次下载的版本。如果有互联网,那么它会下载最新版本并替换并显示刚刚下载的版本。我怎样才能做到这一点?感谢

1 个答案:

答案 0 :(得分:0)

您可以实现webViews委托webViewDidFinishLoad:方法来获取请求并再次加载它。由于它刚刚完成加载,我们可以假设它被缓存并使用同步网络加载它。存储结果。当网络不可用时,使用loadData:MIMEType:textEncodingName:baseURL:将结果加载到webView中。当网络可用时,只需致电loadRequest:进行刷新。

另一种选择是将stringByEvaluatingJavaScriptFromString:与javascript一起使用:

document.getElementsByTagName('html')[0].outerHTML;

并使用loadHTMLString:baseURL:

插入内容

但这两个只适用于没有图像,声音等的纯HTML。

第三种选择是在网络不可用时使用NSURLRequestReturnCacheDataDontLoad。见NSURLRequest

您也可以查看NSURLCache