Android Injizieren in webview externe js-Funktion ausführen, und Alarm auslösen
Ich soll zu injizieren einer externen javascript im webview und ausführen seiner Funktionen execute()
. Nach der Fertigstellung wird eine Warnung ausgelöst und die Zeichenfolge zurück, um die Aktivität
dies ist, wie ich es tun, aber es scheint nicht zu funktionieren (die js ist bereits getestet)
view.loadUrl("javascript:(function() { var script=document.createElement('script');script.type='text/javascript';script.src=" + jsFileURL + ";" + "document.getElementsByTagName('head').item(0).appendChild(script);window.HTMLOUT.showHTML(execute());})()");
dies ist, wie ich das umsetzen HTMLOUT, während die alert overrided in ChromeClient
browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT"); browser.setWebViewClient(new mWebViewClient()); browser.setWebChromeClient(new mChromeClient()); browser.loadUrl("file:///android_asset/Travian comx2b.htm");
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, nach vielen vielen versuchen fand ich ein workaround, aber leider nicht die "Lösung". Ich habe diesen laden
view.loadUrl("javascript:" + src + " execute(); " + "");
während die Quellesrc
kommt aus einer text-Dateiscript.js
umfasst mein javascript (beide Funktionen und Klartext-Befehle)einer Probe des script.js (seien Sie vorsichtig, line endings ";")
Einer Lösung für ein remote-Skript, das ich es noch nicht getestet, ist zum analysieren von remote-Skript (z.B. als inputstream) und dann enthalten Sie als plain-text.
bitte schauen Sie sich das http://lexandera.com/2009/01/adding-alert-support-to-a-webview/
Dank
Ich denke, u haben, schließen Sie den jsFileUrl in einfache Anführungszeichen gesetzt werden.