- import android.app.Activity;
- import android.graphics.Bitmap;
- import android.os.Bundle;
- import android.util.Log;
- import android.webkit.WebView;
- import android.webkit.WebViewClient;
- public class HtmlSource extends Activity {
- private WebView webView;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- webView = (WebView)findViewById(R.id.webview);
- webView.getSettings().setJavaScriptEnabled(true);
- webView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");
- webView.setWebViewClient(new MyWebViewClient());
- webView.loadUrl("http://www.cnblogs.com/hibraincol/");
- }
- final class MyWebViewClient extends WebViewClient{
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- view.loadUrl(url);
- return true;
- }
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
- Log.d("WebView","onPageStarted");
- super.onPageStarted(view, url, favicon);
- }
- public void onPageFinished(WebView view, String url) {
- Log.d("WebView","onPageFinished ");
- view.loadUrl("javascript:window.local_obj.showSource('<head>'+" +
- "document.getElementsByTagName('html')[0].innerHTML+'</head>');");
- super.onPageFinished(view, url);
- }
- }
- final class InJavaScriptLocalObj {
- public void showSource(String html) {
- Log.d("HTML", html);
- }
- }
- }
原文转载于(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)中打印了网页源码。