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