2012-01-11 8 views
3

と、Webページ内のリンク数は、私はいくつかのWebViewを定義していると私はそのWebページ内のリンクの数をカウントすることができますどのように私はWebViewの

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

私の質問があり、その上にいくつかのWebページを開きますか?

私の最初のアイデアはhtmlコードを解析し、そのhtmlの "href"文字列を数えることでしたが、この解決方法は私にとってnoobのようなものです。これを行うもっと知的な方法がありますか?

答えて

1

HTMLを編集することができれば、カウントデータをAndroidに送り返す簡単なjavascript関数を使ってHTMLを編集できます。あなたは、リンクが、このような単純なことができカウントすることhere

JavaScriptで関数についての回答を見ることができます:

<script type="text/javascript"> 
    function countLinks() 
    { 
     var all_a = document.getElementsByTagName("a"); 
     return all_a.length; 
    } 
</script> 
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) findViewById(R.id.webview); 
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android"); 

最後に、HTMLコードでは、DOMからのリンク数を取得し、インターフェースを介してJavaコードに渡します。