Webview 加载一些内部 URL,因此我的"Please Wait"加载程序波动



我的安卓应用程序中有一个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 来验证和其他东西......我的加载器波动为显示-隐藏-显示-隐藏。

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

您可以使用

vwebView.getUrl();检查加载的 URL public void onPageFinished(WebView view, String inComingURL)且仅当它与要加载的 URL 匹配时,才会关闭进度对话框。您可能需要处理诸如 url 根本不加载的情况。

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

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

您必须为 Web 视图设置 Web 视图客户端才能获得回调。

webView.setWebChromeClient(new MyWebChromeClient());

最新更新