1:处理webview返回键
如果用webview点链接看了很多页以后,如果不做任何处理,点击系统“Back”键,整个浏览器会调用finish()而结束自身,
如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件,覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (webView.canGoBack() == true) {
webView.goBack();
} else {
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
注意使用这个方法时 不要重写
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
// view.loadUrl(url);
// return true;
return super.shouldOverrideUrlLoading(view, url);
}
否则返回键不能返回到前一个Activity页面
因为我重写了这个方法 所以导致按下系统返回键总是不能返回到前一个Activity页面
感谢 http://www.eoeandroid.com/thread-274355-1-1.html
2:在网页加载的时候给用户一个提示
class webViewClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
if (!pd.isShowing()) {
pd.show();// 显示进度对话框
}
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (pd.isShowing()) {
pd.hide();
}
}
}
注意:如果打开的网页有用户登录的功能 则一定要加判断pd.isShowing(),原因是onPageStarted和onPageFinished 会加载两次 所以导致pd会显示两次
感谢:http://bbs.csdn.net/topics/390442564
3:用webview加载网页时,点击网页中的视频进行播放,按返回键回到上一个页面,视频声音还在
处理方法:设置webview.loadUrl("");
解释:
所以退出前,让webview加载新的url,那么它就不会播放原来的内容了