Мне нужно UIWebView, чтобы показать страницу html. если интернет недоступен, он покажет последнюю загруженную версию. если имеет интернет, то он загружает самую последнюю версию и заменяет и показывает только что загруженную версию. как я могу это сделать? Спасибоiphone app Данные кэша UIWebView
ответ
Вы можете реализовать вас делегатом webViews webViewDidFinishLoad:
, чтобы захватить запрос и загрузить его снова. Поскольку это была просто законченная загрузка, мы можем предположить, что она кэширована и загружает ее синхронной сетью. Сохраните результат. Когда сеть недоступна, она выводится в webView с использованием loadData:MIMEType:textEncodingName:baseURL:
. Когда сеть появится в наличии, просто вызовите loadRequest:
для обновления.
Другой вариант заключается в использовании stringByEvaluatingJavaScriptFromString:
с JavaScript вокруг:
document.getElementsByTagName('html')[0].outerHTML;
и вставки содержимого с loadHTMLString:baseURL:
Но эти два работают только для чистого HTML без изображений, звуков и т.д.
Третий вариант заключается в использовании NSURLRequestReturnCacheDataDontLoad
, когда сеть недоступна. см. NSURLRequest
Вы также можете посмотреть на NSURLCache