web-dev-qa-db-ja.com

WKWebViewのキャッシュ

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

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

WKWebViewのキャッシュを実装する方法を教えていただけますか?

14
user553536

デフォルトのNSURLRequestUseProtocolCachePolicyを使用した場合、他に必要なことはありません。このポリシーは、サーバーからの応答を自動的に調べて、実際にデータを取得して再度取得するかどうかを決定します。

サーバーがCache-Control HTTPヘッダーを使用し、その応答に最大経過時間を設定する場合、NSURLSessionはこれを尊重し、期限切れになる前にキャッシュされた応答を返します。

9

インターネットに接続している場合、通常はサーバーから読み込みます。それ以外の場合は、キャッシュからロードします。

 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)
3
Durai Amuthan.H