我目前是iOS开发的新手,并尝试获取缓存策略( NSURLRequestReturnCacheDataDontLoad )从缓存中拉出以在iPhone上处于离线状态时查看网页(使用飞行模式) 。我目前正在使用Apple提供的Reachability API来确定网络/ wifi连接是否正常运行。这工作正常但是当我进入飞行模式时,我没有获得填充UIWebView的网页。任何建议都会非常有用,我在网上浏览但没有找到很多有用的链接。感谢。
代码如下:
*- (IBAction)refresh:(id)sender
{
NSURL *url = [NSURL URLWithString:_entry.articleUrl];
NSURLRequest *webRequest = nil;
NSString *articleUrl = [_entry.articleUrl substringFromIndex:7];
NSArray *myArray = [articleUrl componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"/"]];
NSString *hostUrl = [myArray objectAtIndex:0];
NSLog(@"%@", hostUrl);
Reachability *reachability = [Reachability reachabilityWithHostName:hostUrl];
NetworkStatus netStatus = [reachability currentReachabilityStatus];
[[NSURLCache sharedURLCache] setMemoryCapacity:1024*1024*10];
// Verify current help file cache if we have network connection...
if (netStatus == ReachableViaWWAN || netStatus == ReachableViaWiFi)
{
webRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30];
}
else
{
// Network NOT reachable - show (local) cache if it exists
webRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataDontLoad timeoutInterval:30];
}
[_webView loadRequest:webRequest];
}*
答案 0 :(得分:1)
不幸的是,UIWebView
不会保留网页缓存。我从来没有这样做,但使用AFCache应该适用于缓存持久化。
还要确保已安装缓存页面。如果网页不可缓存(即使用Pragma:no-cache),UIWebView
可能仍然无法缓存它。