Первый ответ от FoamyGuy правильный, но у меня есть некоторые дополнения; низкая репутация не может позволить мне делать комментарии. Если по каким-либо причинам ваша страница не загружается, убедитесь, что вы установили флажок, чтобы принять к сведению сбой, а затем проверьте его в переопределении onBackPressed. В противном случае ваш canGoBack () будет выполняться всегда без заголовка к фактическому заднему действию, если оно было там:
//flag with class wide access
public boolean ploadFailFlag = false;
//your error handling override
@Override
public void onReceivedError(WebView view, WebResourceRequest req, WebResourceError rerr) {
onReceivedError(view, rerr.getErrorCode(), rerr.getDescription().toString(), req.getUrl().toString());
ploadFailFlag = true; //note this change
.....
.....
}
//finally to the answer to this question:
@Override
public void onBackPressed() {
if(checkinWebView.canGoBack()){
//if page load fails, go back for web view will not go back - no page to go to - yet overriding the super
if(ploadFailFlag){
super.onBackPressed();
}else {
checkinWebView.goBack();
}
}else {
Toast.makeText(getBaseContext(), "super:", Toast.LENGTH_LONG).show();
super.onBackPressed();
}
}