WebView是view的子类。使用来显示网页的一个android控件,使用了webkit渲染引擎。
当然,android提供了webview的控件,你可以在xml直接指定它的显示位置之类的。下面是加载的webview ,来整页显示。
java代码:
/**
* webview
*/
public class TestWebView extends Activity {
private WebView wview;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// 实例化
wview = new WebView(this);
// 访问页面中有javascript,设置支持javascript。
wview.getSettings().setJavaScriptEnabled(true);
// 加载网页
wview.loadUrl("http://www.baidu.com");
// 在当前的浏览器中响应链接,否则会重新打开一个浏览器应用
wview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
});
//支持获取手势焦点
wview.requestFocusFromTouch();
// 加载
setContentView(wview);
}
/**
* 重新back 键响应,当按back的时候,返回上一个页面而不是退出浏览器。
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ((keyCode == KeyEvent.KEYCODE_BACK) && wview.canGoBack()) {
wview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
效果:
百度搜索 一下一个字符串:
注意:
1.当你需要对链接的url进行设置的话,
/**
* 在当前的浏览器中响应链接,否则会重新打开一个浏览器应用.每当打开新的网页你的时候,都会触发该方法。
*/
wview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 任意长度的字符串 : "(.*?)"
if (url.matches("(.*?)" + "baidu.com" + "(.*?)")) {
view.loadUrl(url);
Log.i("url", url);
} else {
view.loadUrl("http://www.baidu.com");
}
return true;
}
});
测试,当你访问的url 不是百度的站点地址的话,就链接到百度的首页。