2012-03-12 2 views
4

여러 클라이언트에 대해 개인화 된 앱의 경우 shouldOverrideUrlLoading 메소드를 사용하고 있습니다. 각 클라이언트는 웹뷰에로드되기를 원하는 자체 웹 페이지를 가지고 있습니다. 내 문제는 이것입니다 : 응용 프로그램은 클라이언트 A와 그의 웹 페이지에 대해 완벽하게 작동하지만 클라이언트 B 웹 페이지 (어떤 방식 으로든 클라이언트 A와는 관련이 없음)에는 적합하지 않습니다. 차이점은 내가 테스트 한 바와 같이 클라이언트의 B 상황에서로드 된 내용 내에서 webview로 액세스되는 링크에 대해 shoulOverrideUrlLoading이 작동하지 않습니다 (절대로 호출되지 않음)이며 클라이언트의 웹 페이지가 완벽하게 작동한다는 것입니다. 또 다른 점은 클라이언트의 B 웹 페이지가 2.1 또는 2.3.6과 같은 일부 Android 버전에서만 작동하지 않지만 2.3.3, 2.3.5, 4.0.2 또는 4.0.3에서 정상적으로 작동한다는 것입니다.shouldOverrideUrlLoading은 일부 웹 페이지에 대해서만 호출됩니다.

그래서 다소 이상합니다. 무슨 일이 생기면 도와주세요! 고마워요 :)

EDIT : 웹 페이지가 자바 스크립트를 통해 요청 된 링크를로드하지 않고 javascript가 사용되지 않을 때 shouldOverrideLoading이 호출되지 않은 것으로 나타났습니다 !!! 하지만 webview.setJavaScriptEnabled (false)를 설정하면 작동합니다! 웹 페이지가 일반적으로 로딩 이외의 다른 것들을 위해 javascript를 사용하는 이유는 자바 스크립트를 사용해야하기 때문에 shouldOverrideUrlLoading이 호출되지 않기 때문에 사용할 수 없습니다.

편집 2 : 더 정확합니다 :

이것은 하나의 작품과 shouldOverrideUrlLoading이 호출됩니다 :

<p onclick="location.href='linkHere'"> 
     NewLink 
     <span class="icon-arrow"></span> 
</p> 

이 하나가 작동하지 않고 shouldOverrideUrlLoading 호출되지 않습니다

<a class="link-inherit" href="linkHere"> 
     NewLink 
     <span class="icon-arrow"></span> 
</a> 
+0

도움이 될 수 있습니다. http://stackoverflow.com/questions/6738328/shouldoverrideurlloading-in-webview-for-android-not-running –

+0

예 ... 나는 그 글을 보았습니다. 그래도 내 경우는 아니야. 어쨌든 고마워요 :) – user347187

+0

내 대답이 업데이트되었습니다 :) – user347187

답변

3

shouldOverrideUrlLoading에 대한 해결 방법이 없습니다

public void onPageStarted(WebView view, String url, Bitmap favicon) { 

     if (url.contains("success")) { 
      Intent intent = new Intent(WebviewActivity.this, OrderConfirmActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
     } else { 
      super.onPageStarted(view, url, favicon); 
     } 
    } 
+1

??? 누구에게도 효과가 있습니까? 나는 어떻게 보이지 않는다 ... 안드로이드는 "성공"접미사를 첨부 하는가? 내 onPageStarted에 url 매개 변수를 인쇄하고 있는데 이것은 적어도 저에게는 맞지 않습니다. – acrespo

관련 문제