Wie erhalte ich den Webseiteninhalt von einem WebView?
Auf Android habe ich eine WebView
ist die Anzeige einer Seite.
Wie bekomme ich den Quelltext der Seite, ohne die Seite anfordern wieder?
Scheint es WebView
sollte eine gewisse Art von getPageSource()
Methode, die einen string zurückgibt, aber leider ist es nicht.
Wenn ich JavaScript aktivieren, was angemessen ist, das JavaScript zu setzen, in diesem Aufruf, um den Inhalt?
webview.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('body')[0].style.color = 'red'; " +
"})()");
InformationsquelleAutor der Frage gregm | 2010-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, das ist eine späte Antwort, aber ich fand diese Frage, weil ich hatte das gleiche problem. Ich glaube, ich fand die Antwort in dieser Beitrag auf lexandera.com. Der code unten ist im Grunde ein cut-and-paste von der Website. Es scheint den trick tun.
InformationsquelleAutor der Antwort jluckyiv
Pro Problem 12987Blundell ' s Antwort abstürzt (zumindest auf meinem 2.3 VM). Stattdessen fangen ich einen Aufruf von console.Protokoll mit einem speziellen Präfix:
InformationsquelleAutor der Antwort durka42
Dies ist eine Antwort auf jluckyiv ist
aber ich denke, es ist besser und einfacher zu ändern Javascript wie folgt.
InformationsquelleAutor der Antwort nagoya0
Haben Sie sich überlegt das abrufen der HTML-getrennt, und dann laden Sie es in ein webview?
InformationsquelleAutor der Antwort larham1
Mir gelungen, diese Arbeit mit dem code aus @jluckyiv Antwort, aber ich musste die add in @JavascriptInterface Kommentar zu den processHTML Methode in der MyJavaScriptInterface.
InformationsquelleAutor der Antwort dr_sulli
Müssen Sie auch kommentieren Sie die Methode, die mit @JavascriptInterface wenn Ihr targetSdkVersion ist >= 17 - da gibt es neue Anforderungen an die Sicherheit im SDK 17, d.h. alle javascript-Methoden müssen kommentiert mit @JavascriptInterface. Andernfalls sehen Sie eine Fehlermeldung wie: "Uncaught TypeError: Object [object object] has no method 'processHTML' auf null:1
InformationsquelleAutor der Antwort javauser71
Wenn Sie arbeiten auf kitkat und höher, können Sie mithilfe der chrome remote debugging-tools zu finden, alle Anfragen und Antworten gehen in die und aus der Ihre webview und auch der html-Quellcode der Seite angesehen.
https://developer.chrome.com/devtools/docs/remote-debugging
InformationsquelleAutor der Antwort onusopus