首先要这么设置:
不使用缓存,WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
如果不想回退时返回曾经访问过的页面,可以在onPageFinished()中clearHistory(). 注意时机不是loadUrl之前,而是页面加载之后。代码示例:
//mWebView为浏览器实例
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {//不使用外部浏览器
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (clearHistory) {//clearHistory为业务需求设置的boolean参数,可根据需要增减
clearHistory = false;
mWebView.clearHistory();
}
mWebView.setVisibility(VISIBLE);
}
});
mWebView.setOnKeyListener(new OnKeyListener() { // webview can go back
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) {//由于history被清理掉,canGoBack()会返回false
mWebView.goBack();
return true;
}
return false;
}
});