Android WebView回退


在使用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); 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM