10
votes

I am using webview in Android. But strangely, sometimes even webview canGoBack method returns true, webview goBack method doesn't work.

if (webView.canGoBack()) 
    webView.goBack();

Thanks for any idea.

3

3 Answers

12
votes

I finally managed to figure out how to do it

@override
public void onFormResubmission(WebView view, Message dontResend, Message resend)
{
  resend.sendToTarget();
}

default behaviour of onFormResubmission is not to resubmit. resend.sendToTarget() changes that.

this will make your hardware back button work if you have made some code to handle the hardware button

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
  if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
    mWebView.goBack();
    return true;
  }
  return super.onKeyDown(keyCode, event);
}
4
votes

I have disabled the cache and then it worked:

WebView webView = (WebView)findViewById(R.id.webView);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
-2
votes

use this one windows.history.back();