public class WebViewActivity extends Activity {
Button bt;
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
webView = new WebView(this);
setContentView(webView);
//webView.loadUrl("http://veikr.com/wap/");
webView.loadUrl("http://www.baidu.com");
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Handler(), "handler");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
Toast.makeText(WebViewActivity.this, "网页加载完成", 0).show();
view.loadUrl("javascript:window.handler.show(document.body.innerHTML);");
//String c = CookieManager.getInstance().getCookie(url);
super.onPageFinished(view, url);
}
});
}
class Handler {
public void show(String data) {
Toast.makeText(WebViewActivity.this, "执行了handler.show方法", Toast.LENGTH_LONG).show();
new AlertDialog.Builder(WebViewActivity.this).setMessage(data).create().show();
}
}
}
即可显示html页中body内容;
若想显示全部的html内容则修改:
view.loadUrl("javascript:window.handler.show('<head>'+"
+ "document.getElementsByTagName('html')[0].innerHTML+'</head>');");
使用步骤:
1.使能javascript
webView.getSettings().setJavaScriptEnabled(true);
2. 编写本地接口
final class Handler {
public void show(String data) {
Toast.makeText(WebViewActivity.this, "执行了handler.show方法", Toast.LENGTH_LONG).show();
new AlertDialog.Builder(WebViewActivity.this).setMessage(data).create().show();
}
}
3. 向网页暴露本地接口
webView.addJavascriptInterface(new Handler(), "handler");
4. 编写自己的WebViewClient,并在onPageFinished中提取网页源码。