2010-07-05 2 views
0

J'ai besoin d'un UIWebView pour afficher une page html. Si Internet n'est pas disponible, il affichera la dernière version téléchargée. si a internet alors il télécharge la version la plus récente et remplace et montre la version juste téléchargée. Comment puis-je faire ceci? Merciiphone app Données de cache UIWebView

Répondre

0

Vous pouvez implémenter webViews déléguer webViewDidFinishLoad: méthode pour récupérer la demande et le charger à nouveau. Comme il était juste terminé le chargement, nous pouvons supposer qu'il est mis en cache et le charger avec un réseau synchrone. Stocker le résultat. Lorsque le réseau est indisponible, chargez ce résultat dans le WebView en utilisant loadData:MIMEType:textEncodingName:baseURL:. Lorsque le réseau est disponible, appelez le loadRequest: pour vous rafraîchir.

Une autre option consiste à utiliser stringByEvaluatingJavaScriptFromString: avec un javascript autour de:

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

et insérer le contenu avec loadHTMLString:baseURL:

Mais ces deux ne fonctionne que pour HTML pur sans images, sons, etc.

Une troisième option consisterait à utiliser le NSURLRequestReturnCacheDataDontLoad lorsque le réseau n'est pas disponible. voir NSURLRequest

Vous pouvez aussi jeter un oeil à la NSURLCache