WebView可以直接加载网页,支持html格式,用起来非常简单方便,使用时记得添加Internet权限
首先声明:
private WebView mWebView;
实例化:
mWebView=(WebView)findViewById(R.id.web_view);
使用:
mWebView.loadUrl(String url);//此方法可以加载两种不同的链接
//加载web资源
mWebView.loadUrl("http://www.baidu.com");
//加载本地资源
mWebView.loadUrl("file://android_asset/xx.html");
本地资源文件放在:assets文件中
使页面获取焦点
mWebView.requestFocus();
取消滚动条
mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
处理页面导航,使得页面点击时还是在WebView中进行
mWebView.setWebViewClient(new WebViewClient(){
//重写此方法
@override
public boolean shouldOverrideUrlLoading(WebView view,String url){
view.loadUrl(url);
return true;//返回值为true控制网页在WebView中去打开,如果为false调用系统浏览器或者第三方浏览器
}
});
WebView的一些设置:通常使用WebView中的WebSettings来设置
//在WebView中使用javascript
WebSettings settings=mWebView.getSetting();//获取WebView的WebSettings
settings.setJavaScriptEnable(true);//启用javascript功能
//还有这些
settings.setSaveFormData(false);//是否保存表单数据
settings.setDefaultTextEncodingName("UTF-8");//编码格式
settings.setSupportZoom(true);//支持缩放
类似的,在WebView中可以优先使用缓存,可以优化用户的体验,如过每次进入一个页面都需要加载的话,会比较慢
//优先使用缓存:
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//不使用缓存:
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
由于有些页面加载比较慢,所以需要判断页面的加载过程,给用户显示加载进度
mWebView.setWebChromeClient(new WebChromeClient(){
@override
public void onProgressChange(WebView view,int newProgress){
if(newProgress==100){
//加载完毕
}else{
//加载中
}
}
});
在webView中倒退页面:需要在Activity中重写此方法
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_BACK) {
mWebView.goBack();//返回上一页面
return true;
}else{
System.exit(0);//退出程序
}
return super.onKeyDown(int keyCode,KeyEvent event);
}
网友评论