有没有办法在Android的WebView中访问DOM结构?我需要它来检查页面上是否存在某些DOM对象,然后触发一些事件。
谢谢!
答案 0 :(得分:2)
不容易。
您可以调用loadUrl("javascript:...")
,其中...
是要在当前网页中执行的大量JavaScript代码。如果你的“火灾一些事件”在网页的上下文中,也许这就足够了。如果您需要Java代码来“触发某些事件”,您还需要使用addJavaScriptInterface()
创建一个JavaScript-> Java桥接对象并让您的loadUrl("javascript:...")
代码调用它,以获取您的数据进入Java。
答案 1 :(得分:1)
addJavascriptInterface(new WebviewJSInterface(), JS_INTERFACE);
private class WebviewJSInterface
{
@JavascriptInterface
public void processHTML(String output)
{
Log.d("log", "hello: " +output);
}
}
@Override
public void onPageFinished(WebView view, String url)
{
loadUrl("javascript:window. " + JS_INTERFACE + ".processHTML(document.getElementsByTagName('body')[0].innerHTML);");
super.onPageFinished(view, url);
}