欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

Android WebView 获取网页数据(html)_html/css_WEB-ITnose

程序员文章站 2022-04-10 08:48:08
...

1. activity_main.layout



2. MainActivity.java

package com.example.webviewhtml;import android.app.Activity;  import android.graphics.Bitmap;  import android.os.Bundle;  import android.webkit.JavascriptInterface;import android.webkit.WebView;  import android.webkit.WebViewClient;  /**  * Dmeo说明:  * 当WebView加载网页时获取该网页中的内容.  * 参考资料:  * http://www.maxters.net/2012/02/android-webview-get-html-source/  */  public class MainActivity extends Activity {     private WebView mWebView;           @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          init();      }      private void init(){          mWebView=(WebView) findViewById(R.id.webView);          mWebView.getSettings().setJavaScriptEnabled(true);          mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");          mWebView.getSettings().setSupportZoom(true);          mWebView.getSettings().setDomStorageEnabled(true);          mWebView.getSettings().setPluginsEnabled(true);          mWebView.requestFocus();          mWebView.getSettings().setUseWideViewPort(true);          mWebView.getSettings().setLoadWithOverviewMode(true);          mWebView.getSettings().setSupportZoom(true);          mWebView.getSettings().setBuiltInZoomControls(true);          mWebView.loadUrl("http://www.baidu.com");          mWebView.setWebViewClient(new WebViewClient() {              @Override              public void onPageStarted(WebView view, String url, Bitmap favicon) {                  super.onPageStarted(view, url, favicon);              }                @Override              public boolean shouldOverrideUrlLoading(WebView view, String url) {                  view.loadUrl(url);                  return true;              }                @Override              public void onPageFinished(WebView view, String url) {                  super.onPageFinished(view, url);                  view.loadUrl("javascript:window.local_obj.showSource(''+"                          + "document.getElementsByTagName('html')[0].innerHTML+'');");                }                @Override              public void onReceivedError(WebView view, int errorCode,                      String description, String failingUrl) {                  super.onReceivedError(view, errorCode, description, failingUrl);              }            });      }          /**     *  android sdk api >= 17 时需要加@JavascriptInterface     * @author fei     *     */    final class InJavaScriptLocalObj {      	@JavascriptInterface        public void showSource(String html) {              System.out.println("====>html="+html);          }      }  }

3. 在AndroidManifest.xml

增加权限: