之前对于webview的认识很肤浅,这次正好研究一下:

在webview当中加载网址的时候,使用load.url(""),但是要记得在AndroidManifest.xml中对其进行配置。配置语句为:<uses-permission android:name="android.permission.INTERNET" />

重载shouldOverrideUrlLoading(WebView view, String url),当时链接的时候,在本软件进行加载而不是跳到浏览器那里。

返回键的处理:我们打开多个网页后,点击返回目的是返回上一个网页,但是事实上会关闭当前activity,于是要对返回键做处理.

@Override

publicbooleanonKeyDown(intkeyCode,KeyEventevent){

if(keyCode==KeyEvent.KEYCODE_BACK&&webView.canGoBack()){

webView.goBack();

returntrue;

}else

returnsuper.onKeyDown(keyCode,event);

}

网页前进按钮。

if(webView.canGoForward()){

webView.goForward();

}else{

Toast("已经是最后一页了,不能再前进了");

}

点击刷新按钮的时候,执行webview.reload();

如果想在页面加载的时候添加提示信息,可以复写webclient的

onPageStarted(WebViewview,Stringurl,Bitmapfavicon){

}

onPageFinished(WebViewview,Stringurl){}

例子:

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if(progDlg == null || !progDlg.isShowing()){
progDlg = new ProgressDialog(ctx);
progDlg.setMessage("正在加载,请稍候。。。");
}
progDlg.show();
}

@Override
public void onPageFinished(WebView view, String url) {
progDlg.dismiss();
}

7.如果想知道加载进度,需要调用另一个类WebChromeClient。

例子:

webView.setWebChromeClient(new WebChromeClient(){

@Override
public void onProgressChanged(WebView view, int newProgress) {
Message msg = new Message();
msg.what = 200;
msg.obj = newProgress;
handler.sendMessage(msg);
}
}

然后在handler里更新进度条。

private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 200:
int progress = (Integer) msg.obj;
progressBar.setProgress(progress);
break;

default:
break;
}
};
};