android - 如何获取在webview中显示的html页面的全部内容文本

标签 android html webview

我发现了从 webview 读取内容的问题。我已经尝试过但无法修复。

我在 webview 中显示了一个 html 页面。我需要 string

中那个 html 页面的内容

java代码

WebView mainContent = (WebView)layout.findViewById(R.id.webView1);
         mainContent.getSettings().setJavaScriptEnabled(true);
         WebSettings webSettings = mainContent.getSettings();
         webSettings.setJavaScriptEnabled(true);
         webSettings.setBuiltInZoomControls(true);
         mainContent.requestFocusFromTouch();
          mainContent.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
                    mainContent.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
                }
            });
         mainContent.setWebChromeClient(new WebChromeClient());
         mainContent.loadUrl("file:///android_asset/"+filename.get(position));
         webSettings.setDefaultFontSize(40);

在我的 Activity 中

public void processHTML(String html) {

                System.out.println("======++++"+Html.fromHtml(html));
            }

我没有看到我的任何日志。如何在 String 中获取 HTML 页面的内容(文本)。我做错了什么?提前致谢

最佳答案

我是这样获取到内容的

mainContent.getSettings().setJavaScriptEnabled(true);
            WebSettings webSettings = mainContent.getSettings();
            webSettings.setJavaScriptEnabled(true);
            webSettings.setBuiltInZoomControls(true);
            mainContent.requestFocusFromTouch();
            mainContent.setWebChromeClient(new WebChromeClient());
            mainContent.loadUrl("file:///android_asset/"+filename.get(position));
            mainContent.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
                    mainContent.setWebViewClient(null);    
           mainContent.loadUrl("javascript:window.HTMLOUT.processHTML('<div>'+document.getElementsByTagName('div')[0].innerHTML+'</div>');");

在我的 Activity 中

class MyJavaScriptInterface {
        @SuppressWarnings("unused")
        public void processHTML(final String html) {
            runOnUiThread(new Runnable() {
                public void run() {
                     Spanned page = Html.fromHtml(html);
                     System.out.println("content"+page);

                }
            });
        }
    }

关于android - 如何获取在webview中显示的html页面的全部内容文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24734890/

相关文章:

java - 以编程方式使 Android 可穿戴设备静音

在 UiWebView 中使用 webSocket 时 IOS Web 线程停止

javascript - 将数组与 JavaScript 中的数组集进行比较

javascript - jQuery 淡出函数

android - "no preview available"在 android webview 的谷歌文档中查看 pdf

ios - 无法在 iOS Appium 测试 (AWS Device Farm) 上切换到 WebView 上下文

c# - 如何着手传输哈希文件完整性检查?

android - 第三方安卓市场

java - 从带有 map fragment 的 fragment 切换会留下黑屏

html - 表格的响应式网页设计?