在使用webView時,會出現點擊按鈕讓網頁頁面回到上一個頁面的需求,這時可以使用goBack方法。
但是有的安卓用戶會習慣點擊手機自帶的返回按鈕,這時會直接關閉當前的activity,而不是網頁頁面回退。這時可以使用webView.copyBackForwardList()獲取WebBackForwardList,配合onKeyDown監聽事件來解決這個問題。
/** * 設置點擊返回按鈕,跳轉到上一個html頁面,而不是退出當前activity * @param keyCode * @param event * @return */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { if(webView.canGoBack()) { //獲取webView的瀏覽記錄 WebBackForwardList mWebBackForwardList = webView.copyBackForwardList(); //這里的判斷是為了讓頁面在有上一個頁面的情況下,跳轉到上一個html頁面,而不是退出當前activity if (mWebBackForwardList.getCurrentIndex() > 0) { String historyUrl = mWebBackForwardList.getItemAtIndex(mWebBackForwardList.getCurrentIndex() - 1).getUrl(); if (!historyUrl.equals(url)) { webView.goBack(); return true; } } } else { return true; } } return super.onKeyDown(keyCode, event); }
另外,
清理cache 和歷史記錄的方法:
webView.clearCache(true);
webView.clearHistory();
獲取網頁中攜帶的 Cookie
CookieManager cookieManager = CookieManager.getInstance();
String CookieStr = cookieManager.getCookie(url);
WebView 設置實現兩個手指縮放網頁:
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setBuiltInZoomControls(true);