Android:得到WebView當前頁的html源碼


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM