2011-10-12 99 views
4

我正在加載shouldOverrideUrlLoading方法中的所有頁面webview(主要用於跟蹤當前頁面url並做一些修改)。在webview.goBack()上調用「shouldOverrideUrlLoading」方法

我的問題是後退按鈕(例如: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

看你的代碼好像一旦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內。試試這個,應該工作。