2012-05-14 3 views
4

내 응용 프로그램은 웹 사이트의 URL을 Android webview에로드합니다. 이 웹 사이트는 가, AB & C. 웹 사이트를 호출 할 수 있도록 코드가 백 버튼을 가지고 3 페이지 (다른 ID로 실제로는 같은 페이지)로 구성android webview 기록이 제대로 작동하지 않습니다.

javascript:history.go(-1) 

난에서 검색하는 경우 B로 돌아가서 뒤로 버튼을 누르면 제대로 작동합니다.

B에서 C로 이동하여 뒤로 버튼을 누르면 B로 돌아갑니다.

다시 단추를 누르면 A가 아닌 C로 돌아갑니다.
그렇다면 내가 다시 누르면 B로 돌아갈 것입니다 ... 다시 C로 ... 그리고 나서 B로 ... 끝없이, 나는 결코 A에 도착하지 않습니다.

장치와 다음을 사용, 그것은 예상대로 작동합니다

if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { 
     webView.goBack(); 
     return true; 
    } 

추가 정보 : 나는 무시 "shouldOverrideUrlLoading의"WebViewClient를 사용하여 자바 스크립트를 활성화하고 :

webView.getSettings().setJavaScriptEnabled(true); 

어떤 아이디어?

감사합니다.

+0

여기에 같은 문제가 있습니다. – hogni89

+1

@ hogni89 -이 문제를 해결했습니다. 문제의 원인은 "shouldOverrideUrlLoading"입니다. 특정 URL을 처리해야했습니다. 문제는 내가 "사실"로 돌아가고 있다는 것이 었습니다. 내부 브라우저에서 히스토리를 처리하게하려면 "shouldOverrideUrlLoading"내부에서 수행해야하는 작업에 따라 다르지만 false를 반환해야합니다. 도움이 되길 바랍니다. –

+0

탁신. 도와 줘요! ;) – hogni89

답변

0

나는이

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if (url.startsWith("tel:") || url.startsWith("mailto:")) { 
       return true; 
      } 
      if (mOnWebViewEventListener != null) { 
       mOnWebViewEventListener.onWebViewPageStart(view); 
      } 

      if (mShowProgress) { 
       mProgressBar.show(); 
      } 
      return false; 
     } 

과 같은 코드는이 작업의 여부를 쓰기?

관련 문제