WKWebView的缓存

时间:2015-06-16 10:22:45

标签: ios iphone nsurlrequest wkwebview

我的自定义互联网浏览器出现问题。我正在使用WKWebView。我的应用程序中有标签。如果我单击选项卡,则在WKWebView中加载新的NSURLRequest。我需要实现一个缓存。如果用户按下选项卡,我宁愿加载缓存数据而不是新数据。不幸的是,这段代码不起作用:

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:0.0];
[self.webView loadRequest:request];

您能指导我如何为WKWebView实现缓存吗?

2 个答案:

答案 0 :(得分:8)

如果使用NSURLRequestUseProtocolCachePolicy(默认值),则不需要执行任何其他操作。此策略将自动查看服务器的响应,以确定它是否应该实际再次获取数据。

如果服务器使用Cache-Control HTTP标头并设置其响应的最大年龄,NSURLSession将尊重此并在过期之前返回缓存的响应。

答案 1 :(得分:3)

如果我有互联网连接,我通常会从服务器加载。否则,我从缓存中加载。

 if reachability.isReachable {
             urlRequestCache=NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 10)
        }
        else {
            urlRequestCache = NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.ReturnCacheDataElseLoad, timeoutInterval: 60)
        }
       theWebView.loadRequest(urlRequestCache)