我的自定义互联网浏览器出现问题。我正在使用WKWebView。我的应用程序中有标签。如果我单击选项卡,则在WKWebView中加载新的NSURLRequest。我需要实现一个缓存。如果用户按下选项卡,我宁愿加载缓存数据而不是新数据。不幸的是,这段代码不起作用:
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:0.0];
[self.webView loadRequest:request];
您能指导我如何为WKWebView实现缓存吗?
答案 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)