带有webview的网页中的链接数

时间:2012-01-11 14:21:47

标签: android uiwebview webview

我已经定义了一些webview并在其上打开了一些网页

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

我的问题是如何计算该网页中的链接数量?

我的第一个想法是解析html代码并计算该html中的“href”字符串,但这个解决方案对我来说听起来像一个noob解决方案。有更聪明的方法吗?

2 个答案:

答案 0 :(得分:1)

如果您可以编辑HTML,我认为您可以使用简单的javascript函数将其发送回Android。您可以看到有关here

的答案

Javascript中用于计算链接的函数可以像这样简单:

<script type="text/javascript">
   function countLinks()
   {
      var all_a = document.getElementsByTagName("a");
      return all_a.length;
   }
</script>

答案 1 :(得分:0)

首先在android代码中声明一个JavaScriptInterface:

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 = (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>