Подтвердить что ты не робот

Кэш для WKWebView

У меня возникают проблемы с моим пользовательским интернет-браузером. Я использую WKWebView. У меня есть вкладки в моем приложении. Если я нажму на вкладку, загрузятся новые NSURLRequest в WKWebView. Мне нужно реализовать кеш. Если пользователь нажимает на вкладку, я бы предпочел загрузить данные кэша вместо нового. К сожалению, этот код не работает:

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

Можете ли вы посоветовать мне, как реализовать кеш для WKWebView?

4b9b3361

Ответ 1

Если вы использовали NSURLRequestUseProtocolCachePolicy, который по умолчанию, вам больше нечего делать. Эта политика автоматически рассмотрит ответ от сервера, чтобы решить, действительно ли он должен идти и снова захватить данные.

Если сервер использует HTTP-заголовки Cache-Control и устанавливает максимальный возраст для своих ответов, NSURLSession будет уважать это и возвращать кэшированные ответы до истечения срока их действия.

Ответ 2

Обычно я загружу с сервера, если у меня есть подключение к Интернету. В противном случае я загружу из кеша.

 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)