WKWebView的缓存

use*_*536 12 iphone nsurlrequest ios wkwebview

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

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:0.0];
[self.webView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)

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

Dre*_*ary 8

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

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

  • 想知道在没有互联网连接的情况下这是否有效。这就是 UIWebView 发生的情况。不确定 WKWebView。 (2认同)

Dur*_*n.H 5

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

 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)
Run Code Online (Sandbox Code Playgroud)