网页中使用webview的链接数量

3

我定义了一些webview并在其中打开了一些网页

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

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

我的第一个想法是解析HTML代码,并计算该HTML中“href”字符串的数量,但我觉得这个解决方案很初级。有更聪明的方法吗?

2个回答

1
如果您可以编辑HTML,我认为您可以使用一个简单的JavaScript函数将计数数据发送回Android。您可以在这里看到有关此问题的答案。
用于计算链接数量的JavaScript函数可以非常简单,例如:
<script type="text/javascript">
   function countLinks()
   {
      var all_a = document.getElementsByTagName("a");
      return all_a.length;
   }
</script>

0
在Android代码中,首先声明一个JavaScript接口:
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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接