【问题标题】:number of links in a webpage with webview带有 webview 的网页中的链接数
【发布时间】:2012-01-11 14:21:47
【问题描述】:
我已经定义了一些 webview,并在上面打开了一些网页
WebView wv = (WebView) findViewById(R.id.webView1);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://mypage.com/");
我的问题是如何计算该网页中的链接数量?
我的第一个想法是解析 html 代码并计算该 html 中的“href”字符串,但这个解决方案对我来说听起来像是一个菜鸟解决方案。有没有更智能的方法来做到这一点?
【问题讨论】:
标签:
android
uiwebview
webview
【解决方案1】:
如果您可以编辑 HTML,我认为您可以使用简单的 javascript 函数将计数数据发送回 Android。你可以看到关于那个here的答案
Javascript中的链接计数函数可以这么简单:
<script type="text/javascript">
function countLinks()
{
var all_a = document.getElementsByTagName("a");
return all_a.length;
}
</script>
【解决方案2】:
首先在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>