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); 

原文地址:https://www.cnblogs.com/zhujiabin/p/7495780.html