カスタムインターネットブラウザで問題が発生しています。 WKWebViewを使用しています。アプリにタブがあります。タブをクリックすると、新しいNSURLRequestがWKWebViewに読み込まれます。キャッシュを実装する必要があります。ユーザーがタブを押した場合、新規ではなくキャッシュデータをロードしたいと思います。残念ながら、このコードは機能しません:
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)