AndroidはWebViewを使ってHTMLのテキスト内容を読み取る

1393 ワード

 mSetting = mWebView.getSettings();
     mSetting.setJavaScriptEnabled(true);
    mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "java_obj"); 

        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                Toast.makeText(NewsDetailActivity.this, "onPageFinished", Toast.LENGTH_SHORT).show();
    view.loadUrl("javascript:window.java_obj.getSource(document.documentElement.outerHTML);void(0)");
                super.onPageFinished(view, url);
            }


        });
        mWebView.loadUrl(url);
//      
 public final class InJavaScriptLocalObj {
//          ,     
        @JavascriptInterface
        public void getSource(String html) {
            //  HTML P       ,         .
            Pattern pattern=Pattern.compile("(.*?)");
            Matcher matcher = pattern.matcher(html);
            StringBuffer sb=new StringBuffer();
            while (matcher.find())
            {
                sb.append(matcher.group(1));
            }
            mHtmlText = sb.toString();
            Log.e(TAG, sb.toString());
            Toast.makeText(NewsDetailActivity.this,sb.toString(), Toast.LENGTH_SHORT).show();
        }
    }
  • getSourceメソッドを実行してHTMLコンテンツを取得するまでに時間がかかるかもしれませんが、ここで2~3分ほど待ちました.