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();
}
}