我已经定义了一些webview并在其上打开了一些网页
WebView wv = (WebView) findViewById(R.id.webView1);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://mypage.com/");
我的问题是如何计算该网页中的链接数量?
我的第一个想法是解析html代码并计算该html中的“href”字符串,但这个解决方案对我来说听起来像一个noob解决方案。有更聪明的方法吗?
答案 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>