2016-06-14 5 views
0

Ich habe eine App, die UIWebview schwer verwendet, die meisten meiner App sind HTML-Dateien in einem Webserver. Etwas merkwürdiges geschah kürzlich, nach einiger Zeit, die UIWebview verwendet, hört auf, HTML vom Netz zu laden (der Webserver erhielt keine HTTP-Anfrage, indem er die Protokolle sah). Die UIWebview kann immer noch die HTML sehen, bezweifle ich, dass die UIWebview HTML-Datei von lokalen cache geladen wurde.iOS UIWebview Cache-Mechanismus

Aber nach dem Laden der HTML-Datei, hat die UIWebview kein Javascript in dieser HTML-Datei ausgeführt, die viele AJAX-Anfrage ausgeben wird.

Ich muss die App manuell deinstallieren und neu installieren, damit es wieder funktioniert, killen die App und Neustart kann nicht helfen.

Ich frage mich, dass dies mit UIWebview Cache verwandt ist, weil jedes Mal, wenn es auftritt, die App für einige Zeit (mehrere Wochen) verwendet wird.

Hat jemand schon einmal die gleichen Probleme? Wie man es löst?

Es ist zufällig passiert und schwer zu reproduzieren.

Antwort

1

Warum legen Sie keine Cache-Richtlinie für die Anforderung fest. Ich denke, auf diese Weise können Sie auswählen, wann aus dem Cache geladen und wann neu geladen werden soll. Etwas wie der folgende Code könnte helfen.

let url = NSURL (string: yourUrlString); 
var cachePolicy: NSURLRequestCachePolicy? 
//check if connected to network 
if(conected to network){ 
    cachePolicy = .ReloadIgnoringLocalCacheData 
} 
else{ 
    cachePolicy = .ReturnCacheDataDontLoad 
} 
let request = NSURLRequest(URL: url!, cachePolicy: cachePolicy, timeoutInterval: 15.0) 
yourwebView.loadRequest(request)