2012-06-06 5 views
19

Ich muss den Inhalt von UIWebView säubern (um es wiederzuverwenden), aber ich habe einige Authentifizierungs-Code in seinen Delegate-Methoden, so dass ich nicht eine leere Seite laden möchte wie: leer, um es zu bereinigen wird meinen Authentifizierungscode auslösen. Gibt es einen Weg, dies zu tun? (auch wenn ich es wiederverwende, muss ich einen Spinner oben auf der Webansicht platzieren, und wenn es eine andere Seite lädt, möchte ich nicht, dass der Benutzer den Inhalt der vorherigen geladenen Seite sieht, deshalb muss ich ihn säubern)Wie säubere ich den Inhalt von UIWebView, ohne eine leere Seite zu laden?

Danke!

Antwort

66

Sie können nur diese Codezeile verwenden:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]]; 

Hoffnung das ist, was Sie wollen.

+1

Ja, ich weiß das, aber was ich fragte, ist ein Weg ohne zu laden "über: leer", wenn Sie meine Frage lesen. Danke trotzdem! – hzxu

+0

Sie können nicht tun, was Sie wollen, Sie müssen so tun, es gibt keine andere Möglichkeit, dies zu tun. –

+1

Ich denke, das sollte als die Antwort markiert werden. – neevek

25

dies hat den Trick für mich:

[webView stringByEvaluatingJavaScriptFromString:@"document.open();document.close()"]; 
+1

Super! Dies ist derzeit die beste und schnellere Lösung für dieses Thema. Danke! –

+0

Großartig! Sehr schnell! –

+1

Ich fand, dass diese Lösung meinen Hauptfaden für lange 4 Sekunden blockiert, während eine große Webansicht gereinigt wird. –

7

dies ausprobieren. Dieser arbeitete für mich

[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"]; 
+0

Das ist genau das, was ich brauchte. Vielen Dank. – Deepak

+0

auf jeden Fall der schnellste Weg! Vielen Dank – dreampowder

0

Wenn Ihr Problem ist nur, dass der Spinner verschwindet, wenn Sie eine leere Seite laden, können Sie diesen Code in webViewDidFinishLoad verwenden können:

– (void)webViewDidFinishLoad:(UIWebView *)currentWebView { 
    if (![currentWebView.request.URL.description isEqualToString: @"about:blank"]) { 
     self.mySpinner.hidden = YES; 
    } 
} 

... dann wird der Spinner gehen an, bis Ihre Webansicht tatsächlich geladen ist.

Verwandte Themen