Android使用WebView读取HTML中的文本内容

 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("<p.*?>(.*?)</p>");
            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分钟左右.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,167评论 25 709
  • 今天是机械培训第十二天,陈老师讲解了应用光学的相关知识,包括球差,慧差,像散,场曲,畸变,位置色差,倍率色差,还...
    鑫儿luna阅读 232评论 0 0
  • 致二十来岁的你。 忽然发现也没什么好说的。 一段两段三段不成熟不长久不值得回忆的爱情。 一个两个三个抛弃你又强说缘...
    爱狗子啊阅读 191评论 0 1
  • 甲美人说 读你的诗 我酣畅淋漓 我说 你知道么 你的诗 让我嘴角自动上扬 停在那下不来 你的画啊 让我的心 自然流...
    雪莉诗话阅读 259评论 12 13
  • 都说一白能遮三丑,起初小编认为这只是一句俗语,但前几天偶然看到了下面这些明星们的PS照,小编开始相信了,这句话还真...
    言叶之婷阅读 277评论 0 0