美文网首页
Android:得到WebView当前页的html源码

Android:得到WebView当前页的html源码

作者: 郭某人1 | 来源:发表于2018-04-27 18:50 被阅读11次

WebView没有提供直接的API,需要用JavaScript变通处理一下。
本文试图总结一个最简单、优雅的代码。

有两步:

1、先创建一个JavaScript接口类:

     class  MyJavaScriptInterface {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(String html) {
    // 在这里处理html源码
}}

注意粗体的函数名processHTML,在第2步里还要用到。
关于@JavascriptInterface的详细说明,见:http://blog.csdn.net/z82367825/article/details/52187921

2、注册刚才的JavaScript接口:

     WebSettings settings = webView.getSettings();
    // 此方法需要启用JavaScript
    settings.setJavaScriptEnabled(true); // 把刚才的接口类注册到名为HTMLOUT的JavaScript接口
    webView.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");

    // 必须在loadUrl之前设置WebViewClient
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            // 这里可以过滤一下url
            webView.loadUrl("javascript:HTMLOUT.processHTML(document.documentElement.outerHTML);");
        }
    });

    // 开始加载网址
    webView.loadUrl(url);

出处:https://stackoverflow.com/questions/2376471/how-do-i-get-the-web-page-contents-from-a-webview

相关文章

网友评论

      本文标题:Android:得到WebView当前页的html源码

      本文链接:https://www.haomeiwen.com/subject/qfyilftx.html