为了让返回按钮控制WebView“返回上一页”,我处理了按钮消息并加入相关逻辑。同时为了复用WebView,我需要在特定的时候调用 WebView::clearHistory() ,不料WebView::clearHistory()并未起作用。
原因是WebView::clearHistory()有个奇怪的特性,那就是只清除当前页之前的历史记录。假设当前页面为A,我调用WebView::clearHistory()然后loadUrl(B),接着回退还是会退到A。所以正确的调用时机是在B完全载入之后才行,简单的解决方案:
mWebView.loadUrl("B") mWebView.postDelayed(new Runnable() { @Override public void run() { mWebView.clearHistory(); } }, 1000);
参考方案:https://groups.google.com/forum/#!topic/android-developers/Onpbm7esvsM
知识共享署名-非商业性使用-相同方式共享:码农场 » Android WebView clearHistory 失效的解决方案