Android:WebView onPageFinished在android 4.4中的shouldOverrideUrlLoading方法之后没有调用

时间:2014-09-19 14:50:43

标签: android webview android-webview webviewclient

我正在使用WebView android 4.4当URL重定向发生时加载轮继续加载它没有正确解雇。我google了很多,但我没有得到。任何人都可以解释什么是WebView 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();
        }
}

请求网址" www.google.com"。 WebView设置很好。 OnpageFinished没有调用shouldOverrideUrlLoading方法。

1 个答案:

答案 0 :(得分: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级别。