为了让返回按钮控制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