【问题标题】: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>
      

      【讨论】:

        猜你喜欢
        • 2021-05-23
        • 2021-02-18
        • 1970-01-01
        • 2011-05-07
        • 2017-11-19
        • 2017-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多