Есть ли способ получить доступ к структуре DOM в Android WebView? - PullRequest
1 голос
/ 02 сентября 2011

Есть ли способ получить доступ к структуре DOM в Android WebView? Мне нужно, чтобы проверить, существует ли какой-либо объект DOM на странице, а затем запустить некоторые события.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 сентября 2011

Не легко.

Вы можете позвонить loadUrl("javascript:..."), где ... - это кусок кода JavaScript, который будет выполнен на текущей веб-странице.Если ваш «запуск некоторых событий» находится в контексте веб-страницы, возможно, этого будет достаточно.Если вам нужен код Java для «запуска некоторых событий», вам также потребуется использовать addJavaScriptInterface() для создания объекта моста JavaScript-> Java и заставить его вызывать код loadUrl("javascript:..."), чтобы вернуть ваши данные обратно в Java.

1 голос
/ 31 мая 2016
   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);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...