用于离线查看的UIWebView网页缓存

jov*_*vic 19 objective-c uiwebview nsurlrequest ios

首先,我很确定我已经检查过这里的每一个答案,我想做什么也没有.

  1. 在这个问题中,答案是ASIHTTPRequest,这是死项目.(如何在iPhone上下载整个网页(带图像)?)
  2. 在这个问题中,用户提出了RNCachingURLProtocol,这真的很棒但是在完全关闭应用程序之后我遇到了一些问题(在任务栏中关闭它).之后我没有得到CSS或图像,只加载了html.(在Xcode/UIWEBVIEW中脱机时缓存单个网页以供使用).

答案很少,但没有一个是好的.对于我正在搜索的内容,必须有一些简单的实现.

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

保存完整网页的最佳方式(最新)是什么?我发现了一些关于MKNetworkKit但我不确定如何使用它.任何帮助,将不胜感激.

Edw*_*eer 7

听起来标准缓存不够好,因为你无法控制缓存的内容和持续时间.解决这个问题的最简单方法是通过覆盖NSURLCache来创建自己的缓存机制.您可以在http://nshipster.com/nsurlcache/找到一些相关的文档,并在http://github.com/evermeer/EVURLCache上找到一个示例.该示例甚至允许您使用可以包含在应用程序中的预先填充的缓存安装.


Rah*_*jan 6

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];
Run Code Online (Sandbox Code Playgroud)

URL加载系统提供对请求的响应的复合磁盘和内存缓存.此缓存允许应用程序减少其对网络连接的依赖性并提高其性能.