вызовите метод shouldOverrideUrlLoading для webview.goBack () - PullRequest
4 голосов
/ 12 октября 2011

Я загружаю все свои страницы в методе shouldOverrideUrlLoading на webview (в основном для отслеживания URL текущей страницы и внесения некоторых изменений).

Моя проблема в том, что кнопка «назад» (например, 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 Ответ

1 голос
/ 26 октября 2014

Глядя на ваш код, кажется, что когда-то вызывается метод shouldOverrideUrlLoading, основанный на некоторой логике для конкретного URL-адреса. Действие, вам необходим метод Webview go back.Я бы посоветовал вам использовать следующий метод внутри упражнения:

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

, который делает то же самое, что и onKeypressed.(Используется onBackPressed вместо onKeypressed, но пишите этот код внутри класса Activity, но не внутри пользовательского WebViewClient.

. Вызовите onBackPressed() внутри вашего shouldOverrideUrlLoading. Попробуйте, это должно работать.

...