gpt4 book ai didi

android - 如何在 WebView 中激活一次进度条

转载 作者:行者123 更新时间:2023-11-30 04:24:56 25 4
gpt4 key购买 nike

我有一个使用进度条对话框的 Webview 应用程序。它工作正常,但问题是我显示的 URL 是一种基本形式,用户必须在其中输入一些信息。

每当用户点击按钮执行某些操作时,进度条就会加载。此应用程序中的进度条和网页中的加载消息相互重叠。您可以在第二页和第三页看到它们同时出现。

如何让我的应用程序中的进度条仅运行一次,即在第一页加载时运行。这是我的 Activity :

     public class Webform extends Activity {

private WebView webview;
private ProgressDialog progressDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webform);
webview = (WebView) findViewById(R.id.webview);

final Activity activity = this;

webview.loadUrl("http://www.ccsuhealth.mobi");
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}


public void onLoadResource (WebView view, String url) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(activity);
progressDialog.setMessage("Loading... ");
progressDialog.show();
}
}

public void onPageFinished(WebView view, String url) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
progressDialog = null;
progressDialog.cancel();
}
}


public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Toast.makeText(Webform.this, "Your Internet Connection May not be active Or " + description , Toast.LENGTH_LONG).show();
}


});

}

最佳答案

如果我没理解错的话,您只想在第一页(登录页)显示进度条,而不会在后续页面显示。方法如下:

  1. 实现 onPageStated 事件并激活其中的进度条——但前提是该 URL 与您所需的登录页面 URL 匹配。
    http://developer.android.com/reference/android/webkit/WebViewClient.html#onPageStarted(android.webkit.WebView , java.lang.String, android.graphics.Bitmap)

  2. 实现 WebChromeClient.onProgressChange 事件。在 onProgressChange 中设置进度条进度——但前提是进度条可见。

    http://developer.android.com/reference/android/webkit/WebChromeClient.html#onProgressChanged(android.webkit.WebView , 整数)

  3. 实现 onPageFinished 事件并在其中隐藏进度条。

    http://developer.android.com/reference/android/webkit/WebViewClient.html#onPageFinished(android.webkit.WebView , java.lang.String)

关于android - 如何在 WebView 中激活一次进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com