2010-07-05 3 views
0

Мне нужно UIWebView, чтобы показать страницу html. если интернет недоступен, он покажет последнюю загруженную версию. если имеет интернет, то он загружает самую последнюю версию и заменяет и показывает только что загруженную версию. как я могу это сделать? Спасибоiphone app Данные кэша UIWebView

ответ

0

Вы можете реализовать вас делегатом webViews webViewDidFinishLoad:, чтобы захватить запрос и загрузить его снова. Поскольку это была просто законченная загрузка, мы можем предположить, что она кэширована и загружает ее синхронной сетью. Сохраните результат. Когда сеть недоступна, она выводится в webView с использованием loadData:MIMEType:textEncodingName:baseURL:. Когда сеть появится в наличии, просто вызовите loadRequest: для обновления.

Другой вариант заключается в использовании stringByEvaluatingJavaScriptFromString: с JavaScript вокруг:

document.getElementsByTagName('html')[0].outerHTML; 

и вставки содержимого с loadHTMLString:baseURL:

Но эти два работают только для чистого HTML без изображений, звуков и т.д.

Третий вариант заключается в использовании NSURLRequestReturnCacheDataDontLoad, когда сеть недоступна. см. NSURLRequest

Вы также можете посмотреть на NSURLCache