Android:在WebView中获取网页源码

view plain
  1. import android.app.Activity;  
  2. import android.graphics.Bitmap;  
  3. import android.os.Bundle;  
  4. import android.util.Log;  
  5. import android.webkit.WebView;  
  6. import android.webkit.WebViewClient;  
  7.   
  8. public class HtmlSource extends Activity {  
  9.     private WebView webView;  
  10.     /** Called when the activity is first created. */  
  11.     @Override  
  12.     public void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         setContentView(R.layout.main);  
  15.         webView = (WebView)findViewById(R.id.webview);  
  16.         webView.getSettings().setJavaScriptEnabled(true);  
  17.         webView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");  
  18.         webView.setWebViewClient(new MyWebViewClient());  
  19.         webView.loadUrl("http://www.cnblogs.com/hibraincol/");  
  20.     }  
  21.       
  22.       
  23.    final class MyWebViewClient extends WebViewClient{    
  24.         public boolean shouldOverrideUrlLoading(WebView view, String url) {     
  25.             view.loadUrl(url);     
  26.             return true;     
  27.         }    
  28.         public void onPageStarted(WebView view, String url, Bitmap favicon) {  
  29.             Log.d("WebView","onPageStarted");  
  30.             super.onPageStarted(view, url, favicon);  
  31.         }      
  32.         public void onPageFinished(WebView view, String url) {  
  33.             Log.d("WebView","onPageFinished ");  
  34.             view.loadUrl("javascript:window.local_obj.showSource('<head>'+" +  
  35.                     "document.getElementsByTagName('html')[0].innerHTML+'</head>');");  
  36.             super.onPageFinished(view, url);  
  37.         }  
  38.     }  
  39.       
  40.     final class InJavaScriptLocalObj {  
  41.         public void showSource(String html) {  
  42.             Log.d("HTML", html);  
  43.         }  
  44.     }  
  45. }  


 

 

原文转载于(Braincol的博客园): http://www.cnblogs.com/hibraincol/archive/2011/10/26/2224866.html

 

关键之处在于:

view.loadUrl("javascript:window.local_obj.showSource('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");

运行,可以看到在showSource(String html)中打印了网页源码。

你可能感兴趣的:(JavaScript,html,android,String,url)