在webview.goBack()上调用“shouldOverrideUrlLoading”方法

时间:2011-10-12 12:32:44

标签: android webview history

我正在shouldOverrideUrlLoading上的webview方法中加载我的所有页面(主要是为了跟踪当前页面网址并进行一些修改)。

我的问题是后退按钮(例如:webview.goback()方法)绕过了上述功能。

有什么方法可以明确地同时调用goback()shouldOverrideUrlLoading()方法。

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);
}

1 个答案:

答案 0 :(得分:1)

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

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

与onKeypressed完全相同。 (使用onBackPressed代替onKeypressed,但是在Activity类中编写此代码,但不在自定义WebViewClient内。

致电onBackPressed()内的shouldOverrideUrlLoading。试试这个,应该有用。