有没有办法在Android的WebView中访问DOM结构?

时间:2011-09-02 11:32:42

标签: android dom android-webview

有没有办法在Android的WebView中访问DOM结构?我需要它来检查页面上是否存在某些DOM对象,然后触发一些事件。

谢谢!

2 个答案:

答案 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);
        }