2014-09-19 3 views
2

URL 리디렉션이 발생하면 WebView android 4.4에서 작업 중입니다. 나는 많이 봤지만 나는 못해. 어떤 사람이 WebView android 4.4의 흐름을 설명 할 수 있습니까? 시도한 코드는 다음과 같습니다.안드로이드 : WebView onPageFinished가 안드로이드의 shouldOverrideUrlLoading 메소드를 호출하지 않음 4.4

public class MyWebViewClient extends WebViewClient { 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      super.onPageStarted(view, url, favicon); 

      dialog = ProgressDialog.show(getActivity(), null, "Loading..."); 
      dialog.setCancelable(true); 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
      dialog.dismiss(); 
     } 
} 

요청 URL "www.google.com". WebView 설정은 문제가 없습니다. OnPageFinished는 shouldOverrideUrlLoading 메서드 다음에 호출하지 않습니다.

답변

3

진행 대화 상자를 잘못 처리했습니다.

public class MyWebViewClient extends WebViewClient { 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     super.onPageStarted(view, url, favicon); 

     if(dialog == null){ 
       dialog = ProgressDialog.show(getActivity(), null, "Loading..."); 
       dialog.setCancelable(true); 
     } 
    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 
     if(dialog.isShowing()) 
      dialog.dismiss(); 
    } 
} 

이제 모든 API 수준에서 정상적으로 작동합니다.

+1

이 경우 shouldOverrideUrlLoading은 필요하지 않습니다. 하지만 당신이 URL로 뭔가를하고있는 것 같아요? – Harry

관련 문제