Android-通過WebView獲取html內容
阿新 • • 發佈:2019-01-13
轉自:https://blog.csdn.net/z82367825/article/details/52187921
覺得寫得很好,轉載做自己收藏
通過WebView獲得某個url的html內容。
實現
1. 自定義一個Java物件
/** * 邏輯處理 * @author linzewu */ final class InJavaScriptLocalObj { @JavascriptInterface public void getSource(String html) { Log.d("html=", html); } }
2. WebView初始化,我們為其設定引數,為其設定嵌入JavaScript程式碼的Java物件。
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new InJavaScriptLocalObj(), "java_obj");
webview.setWebViewClient(new WebViewClient());
3. 在WebViewClient中,當訪問的http請求載入完成的時候,載入JavaScript程式碼,在JavaScript程式碼中呼叫我們之前嵌入的java物件。
webView.setWebViewClient(new WebViewClient(){ @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError(view, request, error); } @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { view.loadUrl("javascript:window.java_obj.getSource('<head>'+" + "document.getElementsByTagName('html')[0].innerHTML+'</head>');"); super.onPageFinished(view, url); } });