2011-10-12 3 views
4

shouldOverrideUrlLoading 메서드 내 에 내 페이지를로드합니다 (주로 현재 페이지 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 방법은 특정 URL 조치에 대한 몇 가지 논리에 기반이라고 일단 당신이 Webview 돌아갈 방법이 필요한 것 같다. 활동 내에서 다음 방법을 사용하는 것이 좋습니다.

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

정확하게 onKeypressed와 동일합니다. (그러나 사용자 정의 WebViewClient 내부 대신 onKeypressedonBackPressed을 사용하지만, 작업 클래스 내부에이 코드를 작성합니다.

통화가 shouldOverrideUrlLoading 내부의 onBackPressed().이 시도가 작동합니다.

관련 문제