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

 

WebView沒有提供直接的API,須要用JavaScript變通處理一下。
本文試圖總結一個最簡單、優雅的代碼。

有兩步:

一、先建立一個JavaScript接口類:javascript

複製代碼
class MyJavaScriptInterface {
    @JavascriptInterface
    @SuppressWarnings("unused")
    public void processHTML(String html) {
        // 在這裏處理html源碼
    }
}
複製代碼

注意粗體的函數名processHTML,在第2步裏還要用到。
關於@JavascriptInterface的詳細說明,見:http://blog.csdn.net/z82367825/article/details/52187921

二、註冊剛纔的JavaScript接口:html

複製代碼
        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);
複製代碼


出處:java

相關文章
相關標籤/搜索