我正在加载shouldOverrideUrlLoading方法中的所有页面(主要是跟踪当前页面url并进行一些修改)。
我的问题是后退按钮(例如:webview方法)绕过了上述功能。
是否有任何方法可以显式调用webview.goback()goback()方法。

public boolean shouldOverrideUrlLoading(WebView view, String url){
//get current url and do some modifications to html}

public boolean onKeyDown(int keyCode, KeyEvent event) {
     if ((keyCode == KeyEvent.KEYCODE_BACK) && web1.canGoBack()) {
         webview.goBack();
         return true;
      }
      return super.onKeyDown(keyCode, event);
}

最佳答案

查看您的代码似乎是,一旦基于特定url操作的某些逻辑调用了shouldOverrideUrlLoading方法,您就需要Webview返回方法。我建议您在活动中使用以下方法:

@Override
public void onBackPressed() {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && web1.canGoBack()) {
        webview.goBack();
    } else {
        super.onBackPressed();
    }
}

它的功能与onkeypressed完全相同。(使用onBackPressed而不是onKeypressed,但在activity类中编写此代码,而不是在customWebViewClient中。
调用onBackPressed()中的shouldOverrideUrlLoading。试试这个,应该管用。

07-27 13:39