我的自定义互联网浏览器出了问题。我正在使用WKWebView。我的应用程序中有标签。如果我单击选项卡,则在WKWebView中加载新的NSURLRequest。我需要实现一个缓存。如果用户按下选项卡,我宁愿加载缓存数据而不是新数据。不幸的是这段代码不起作用:
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:0.0];
[self.webView loadRequest:request];
你能指导我如何为WKWebView实现缓存吗?
如果你用过 NSURLRequestUseProtocolCachePolicy
,这是默认设置,您不需要做任何其他事情。此策略将自动查看服务器的响应,以确定它是否应该实际再次获取数据。
如果服务器使用Cache-Control HTTP标头并设置其响应的最大年龄,NSURLSession将尊重此并在过期之前返回缓存的响应。
如果我有互联网连接,我通常会从服务器加载。否则,我从缓存加载。
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)
如果你用过 NSURLRequestUseProtocolCachePolicy
,这是默认设置,您不需要做任何其他事情。此策略将自动查看服务器的响应,以确定它是否应该实际再次获取数据。
如果服务器使用Cache-Control HTTP标头并设置其响应的最大年龄,NSURLSession将尊重此并在过期之前返回缓存的响应。
如果我有互联网连接,我通常会从服务器加载。否则,我从缓存加载。
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)