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("");
解釋:
我們在退出一個activity時,這個activity還在堆棧裡沒有銷毀
所以退出前,讓webview載入新的url,那麼它就不會播放原來的內容了