UIWebView网页caching离线查看

首先,我非常肯定,我已经检查了每个答案,没有什么是我想要做的。

  1. 在这个问题上,答案是ASIHTTPRequest这个死的项目。 ( 如何在iPhone上下载整个网页(附带图片)? )
  2. 在这个问题中,用户提出的RNCachingURLProtocol非常棒,但完全closures了应用程序后(在任务栏中closures了它),我遇到了一些问题。 之后,我没有得到CSS或图像,只有HTML被加载。 ( cachingXcode / UIWEBVIEW中离线时使用的单个网页 )。

还有几个答案,但没有一个是好的。 我正在寻找的东西必须有一些简单的实现。

我想:当应用程序打开,它加载一些网页。 我想完全保存该网页。 现在用户可以退出或做他想做的事情(只是不卸载)。 只要有一些互联网连接(我检查使用可达性类),网页正常加载,它正在被保存。 如果用户打开应用程序,并没有互联网连接我只是想显示消息,“它可能不是最新的bla bla boa”,并显示完整的,保存的网页上次保存应用程序有互联网连接。

什么是最好的方式(最新)来保存完整的网页。 我发现了一些MKNetworkKit,但我不知道如何使用它。 任何帮助,将不胜感激。

这听起来像标准的caching不够好,因为你无法控制什么caching和多久。 解决这个问题的最简单方法是通过重写NSURLCache来创build自己的caching机制。 你可以在http://nshipster.com/nsurlcache/和http://github.com/evermeer/EVURLCachefind一些相关的文档。这个例子甚至可以让你使用可以包含在你的应用程序中的预先填充的caching安装。

NSString *stringurl=[NSString stringWithFormat:@"http://www.google.com"]; NSURL *url=[NSURL URLWithString:stringurl]; NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:15.0]; [uiwebview loadRequest:theRequest]; 

URL加载系统提供了对请求的响应的复合磁盘和内存caching。 此caching允许应用程序减less对networking连接的依赖并提高其性能。