【问题标题】:ProgressBar with script onPageStarted and onPageFinished带有脚本 onPageStarted 和 onPageFinished 的 ProgressBar
【发布时间】:2017-10-29 16:01:05
【问题描述】:

如何根据我的 MainActivity 使用 onPageStarted 和 onPageFinished 在WebView中显示进度条?我目前使用的是 Android Studio 2.3.3

MainActivity

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView wv = (WebView) findViewById(R.id.webview1);
        wv.loadUrl("https://www.google.com);
        wv.setWebViewClient(new WebViewClient());

        WebSettings ws = wv.getSettings();
        ws.setJavaScriptEnabled(true);
        ws.setSupportZoom(false);

               }

【问题讨论】:

    标签: android webview android-progressbar


    【解决方案1】:

    试试这个:

    ProgressBar progressBar;
    

    ...

    progressBar = (ProgressBar) findViewById(R.id.progressbar);
    progressBar.setMax(100);
    progressBar.setProgress(1);
    
    webView.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                progressBar.setProgress(progress);
            }
        });
            webView.setWebViewClient(new WebViewClient() {
    
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                progressBar.setVisibility(View.VISIBLE);
    
    
            }
    
    
    
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
    
                progressBar.setVisibility(View.GONE);
            }
        });
    

    【讨论】:

    • 我添加了 onPageStarted 和 onPageFinished。它不会在日志中显示任何错误,但在应用程序(智能手机)中,它不会在 WebView 中打开 URL 之前显示进度条。遵守准则
    • 在你的布局中,在进度条中添加:android:visibility="visible" />
    【解决方案2】:

    MainActivity

    public class MainActivity extends AppCompatActivity {
    
    WebView wv;
    ProgressBar progressBar;
    
    @Override
    public void onBackPressed() {
        wv = (WebView) findViewById(R.id.webview1);
        if (wv.canGoBack()) {
            wv.goBack();
        } else {
            new AlertDialog.Builder(this)
                    .setIcon(android.R.drawable.ic_dialog_alert)
                    .setTitle("Sair")
                    .setMessage("Você deseja sair do aplicativo?")
                    .setPositiveButton("Sim", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            finish();
                        }
    
                    })
                    .setNegativeButton("Não", null)
                    .show();
        }
    }
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        wv = (WebView) findViewById(R.id.webview1);
        progressBar = (ProgressBar) findViewById(R.id.progressBar2);
    
        wv.setWebViewClient(new WebClient());
        wv.getSettings().setJavaScriptEnabled(true);
        wv.getSettings().setSupportZoom(false);
        wv.loadUrl("https://www.google.com");
    }
    
    
    public class WebClient extends WebViewClient {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            progressBar.setVisibility(View.VISIBLE);
        }
    
    
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            progressBar.setVisibility(View.GONE);
        }
    
    
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      相关资源
      最近更新 更多