Webview加载一些内部URL,因此My" Please Wait"装载机波动

时间:2016-04-25 11:05:53

标签: android webview android-webview

我的Android应用程序中有一个WebView,用于登录我的应用程序。 我在WebView中加载的URL是" https://accounts.google.com/ServiceLogin#identifier"用ru到我的网站。

在加载之前,我启动一个进度对话框,其中显示"请稍候"。

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

                @Override
                public void onPageFinished(WebView view, String inComingURL) {
                    super.onPageFinished(view, inComingURL);
                    Utils.mHideProgrossDiolog();
                }

问题是,因为WebView加载了一些内部URL来验证和其他事情...我的Loader波动为show-hide-show-hide。

我希望它仅在最终网站加载时隐藏。有人可以帮助我在这种情况下做什么。

2 个答案:

答案 0 :(得分:0)

您可以使用vwebView.getUrl();检查加载的网址  public void onPageFinished(WebView view, String inComingURL)并且仅当它与您要加载的URL匹配时才会关闭进度对话框。你可能不得不处理像url根本没有加载的情况。

答案 1 :(得分:0)

您可以通过网络Chrome客户端检查网页加载的进度,一旦达到100%,您就可以隐藏对话框。

private class MyWebChromeClient extends WebChromeClient{
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        super.onProgressChanged(view, newProgress);
        if(newProgress==100){
            progressDialog.dismiss();
        }
    }
}

您必须为您的网络视图设置webview客户端才能获得回调。

webView.setWebChromeClient(new MyWebChromeClient());