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