количество ссылок на веб-странице с веб-просмотром - PullRequest
3 голосов
/ 11 января 2012

Я определил некоторое веб-представление и открываю на нем некоторую веб-страницу

WebView wv = (WebView) findViewById(R.id.webView1);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://mypage.com/");

У меня вопрос: как подсчитать количество ссылок на этой веб-странице?

Моей первой идеей было проанализировать html-код и посчитать строку "href" в этом html, но это решение звучит для меня как решение noob. Есть ли более разумный способ сделать это?

Ответы [ 2 ]

1 голос
/ 11 января 2012

Если вы можете редактировать HTML, я думаю, что вы можете сделать это с помощью простой функции javascript, которая отправляет данные счета обратно в Android.Вы можете увидеть ответ об этом здесь

Функция подсчета ссылок в Javascript может быть такой простой:

<script type="text/javascript">
   function countLinks()
   {
      var all_a = document.getElementsByTagName("a");
      return all_a.length;
   }
</script>
0 голосов
/ 11 января 2012

Сначала объявите JavaScriptInterface в коде Android:

public class JavaScriptInterface {
   Context mContext;
   /** Instantiate the interface and set the context */
   JavaScriptInterface(Context c) {
       mContext = c;
   }
   /** Get number of links */
   public void getNumOfLinks(int numOfLinks) {
       // Use the count as you like
   }
}

Затем добавьте этот интерфейс в ваше веб-представление, когда вы его вызываете:

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");

Наконец в HTML-коде получите номерссылок из DOM и передать его в код Java через интерфейс:

<script type="text/javascript">
   Android.getNumOfLinks(document.getElementsByTagName("a").length)
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...