之前对于webview的认识很肤浅,这次正好研究一下:
在webview当中加载网址的时候,使用load.url(""),但是要记得在AndroidManifest.xml中对其进行配置。配置语句为:<uses-permission android:name="android.permission.INTERNET" />
重载shouldOverrideUrlLoading(WebView view, String url),当时链接的时候,在本软件进行加载而不是跳到浏览器那里。
返回键的处理:我们打开多个网页后,点击返回目的是返回上一个网页,但是事实上会关闭当前activity,于是要对返回键做处理.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();
return true;
} else
return super.onKeyDown(keyCode, event);
}
网页前进按钮。
if(webView.canGoForward()){
webView.goForward();
}else{
Toast("已经是最后一页了,不能再前进了");
}
点击刷新按钮的时候,执行webview.reload();
如果想在页面加载的时候添加提示信息,可以复写webclient的
onPageStarted(WebView view, String url, Bitmap favicon){
}
onPageFinished(WebView view, String url){}
例子:
@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;
}
};
};
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。