我一直在测试一个使用UIWebView加载外部内容(而不是项目捆绑资源)的iPhone视图控制器。另一位工程师注意到Web视图根本没有缓存,所以我进行了一些研究。一些较旧的问题表明,UIWebView只是不能缓存外部内容。
先前关于UIWebView缓存的SO问题:
这些文章都很令人沮丧,但我注意到它们都是在iOS 4.0之前发布的。我测试了下面的缓存方法,看起来非常简单。
NSURLRequest *request = [NSURLRequest requestWithURL:myUrl
cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];
[webView loadRequest:request];
这在 iOS 4.3 上似乎非常好用,但在 iOS 3.0 上根本不起作用。我通过将设备指向 Charles 代理(iPhone 上为“设置” -> “Wi-Fi”,手动代理)并记录到我的服务器上的流量来测试它。
在 iOS 4.0 中,UIWebView 是否开始观察缓存策略?有其他人可以确认这一点,还是我只是想象出了这个问题?
[NSURLRequest requestWithURL:myUrl]
,看起来它是从缓存中加载的。 - goldierox