2014-09-19 110 views
2

shouldOverrideUrlLoading方法后,我的WebView上Android 4.4的工作时,URL重定向发生负重轮继续加载其无法正常解雇。我google了很多,但我没有得到。任何人都可以解释什么是WebView的Android 4.4的流程。这是我的代码我试过的:安卓的WebView onPageFinished没有调用Android 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没有必要。但我想你正在做的东西与网址? – Harry 2014-11-10 14:36:56