一、什么是WebView
WebView类是安卓中用来显示网页的帮助类,通过使用WebView控件可显示网页内容,还可通过javascript来进行网页的交互。
二、WebView的使用方法
感觉没什么太多可说的,直接上代码,用法看注释
webView = (WebView) findViewById(R.id.webView);
assert webView != null;
webView.loadUrl("http://2014.qq.com"); //读取网页
//WebViewClient可以帮助WebView处理页面信息
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
WebSettings webSettings = webView.getSettings();//通过WebSettings类可进行参数设置
webSettings.setJavaScriptEnabled(true);//支持javascript
//优先加载缓存中的内容,没有从网络上加载
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//通过setWebChromeClient方法加载对话窗体
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress==100){
//网页加载完毕
closeDialog();
}else{
//网页正在加载
openDialog(newProgress);
}
}
private void closeDialog() {
if(progressDialog!=null&&progressDialog.isShowing()){
progressDialog.dismiss();
progressDialog=null;
}
}
private void openDialog(int newProgress) {
if(progressDialog==null){
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("正在加载");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgress(newProgress);
progressDialog.show();
}else{
progressDialog.setProgress(newProgress);
}
}
});
通过重写onKeyDown()方法可自定义按键事件
//自定义返回按键事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK){
//Toast.makeText(this, webView.getUrl(),Toast.LENGTH_SHORT).show();
if(webView.canGoBack()){
webView.goBack();
return true;
}else{
System.exit(0);
}
}
return super.onKeyDown(keyCode,event);
}