我的安卓应用程序中有一个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());