如何正确缓存UIWebView中的网站?

时间:2016-05-30 12:52:27

标签: ios caching uiwebview

我有一个UISwitch,如果它有效,我的UIWebView应该缓存所有访问过的网站。

如果它处于活动状态,我有以下代码

[[NSURLCache sharedURLCache] setDiskCapacity:4 * 1024 * 1024];
[[NSURLCache sharedURLCache] setMemoryCapacity:32 * 1024 * 1024];
[self setRequestObj:[NSURLRequest requestWithURL:loadUrl cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0]];

如果我停用了UISwitch我的代码,请执行以下操作

[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
[self setRequestObj:[NSURLRequest requestWithURL:loadUrl]];

是否有一些方法我必须激活才能正常工作?如果它被关闭,它应该在每次通话时从Web服务器加载所有内容。如果它已经打开,它应该从他的缓存加载所有内容,如果他之前访问过它。

如果我关闭应用并再次打开它,我的Button仍然打开,似乎没有缓存,但如果我关闭我的应用程序时没有删除它。

如果理解起来很复杂,那么。)。

1 个答案:

答案 0 :(得分:0)

你可以试试这个,

   // Determile cache file path
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [NSString stringWithFormat:@"%@/%@", [paths objectAtIndex:0],@"index.html"];   

// Download and write to file
NSURL *url = [NSURL URLWithString:@"http://www.google.co.uk"];
NSData *urlData = [NSData dataWithContentsOfURL:url];
[urlData writeToFile:filePath atomically:YES];

// Load file in UIWebView
[web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]];

您可以参考this answer了解更多详情。

希望这会有所帮助:)