1. activity_main.layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <WebView android:id="@+id/webView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> </RelativeLayout>
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(‘<head>‘+" + "document.getElementsByTagName(‘html‘)[0].innerHTML+‘</head>‘);"); } @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
增加权限:
<uses-permission android:name="android.permission.INTERNET" />
时间: 2024-11-05 22:06:40