获取WebView加载HTML时网页中的内容

main.xml如下:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     tools:context=".MainActivity" >  
  6.   
  7.     <WebView  
  8.         android:id="@+id/webView"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="fill_parent"  
  11.         android:layout_centerHorizontal="true"  
  12.         android:layout_centerVertical="true"  
  13.          />  
  14.   
  15. </RelativeLayout>  

MainActivity如下:

  1. package com.example.testgetwebviewcontent;  
  2. import android.app.Activity;  
  3. import android.graphics.Bitmap;  
  4. import android.os.Bundle;  
  5. import android.webkit.WebView;  
  6. import android.webkit.WebViewClient;  
  7. /** 
  8.  * Dmeo说明: 
  9.  * 当WebView加载网页时获取该网页中的内容. 
  10.  * 参考资料: 
  11.  * http://www.maxters.net/2012/02/android-webview-get-html-source/ 
  12.  */  
  13. public class MainActivity extends Activity {  
  14.    private WebView mWebView;  
  15.      
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.main);  
  20.         init();  
  21.     }  
  22.     private void init(){  
  23.         mWebView=(WebView) findViewById(R.id.webView);  
  24.         mWebView.getSettings().setJavaScriptEnabled(true);  
  25.         mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");  
  26.         mWebView.getSettings().setSupportZoom(true);  
  27.         mWebView.getSettings().setDomStorageEnabled(true);  
  28.         mWebView.getSettings().setPluginsEnabled(true);  
  29.         mWebView.requestFocus();  
  30.         mWebView.getSettings().setUseWideViewPort(true);  
  31.         mWebView.getSettings().setLoadWithOverviewMode(true);  
  32.         mWebView.getSettings().setSupportZoom(true);  
  33.         mWebView.getSettings().setBuiltInZoomControls(true);  
  34.         mWebView.loadUrl("http://www.baidu.com");  
  35.         mWebView.setWebViewClient(new WebViewClient() {  
  36.             @Override  
  37.             public void onPageStarted(WebView view, String url, Bitmap favicon) {  
  38.                 super.onPageStarted(view, url, favicon);  
  39.             }  
  40.   
  41.             @Override  
  42.             public boolean shouldOverrideUrlLoading(WebView view, String url) {  
  43.                 view.loadUrl(url);  
  44.                 return true;  
  45.             }  
  46.   
  47.             @Override  
  48.             public void onPageFinished(WebView view, String url) {  
  49.                 super.onPageFinished(view, url);  
  50.                 view.loadUrl("javascript:window.local_obj.showSource('<head>'+"  
  51.                         + "document.getElementsByTagName('html')[0].innerHTML+'</head>');");  
  52.   
  53.             }  
  54.   
  55.             @Override  
  56.             public void onReceivedError(WebView view, int errorCode,  
  57.                     String description, String failingUrl) {  
  58.                 super.onReceivedError(view, errorCode, description, failingUrl);  
  59.             }  
  60.   
  61.         });  
  62.     }  
  63.       
  64.     final class InJavaScriptLocalObj {  
  65.         public void showSource(String html) {  
  66.             System.out.println("====>html="+html);  
  67.         }  
  68.     }  
  69. }  
posted @ 2013-10-18 11:37  郑文亮  阅读(29132)  评论(2编辑  收藏  举报