WebChromeClient onProgressChanged事件

时间:2017-08-25 16:13:12

标签: java android webview

我正在为我的博客创建一个应用。我使用webview在主要活动中加载博客网站。为了提高效率,我使用ProgressBar在网址加载进度时进行加载动画。在调用另一个url时捕获时添加方法,在系统Web浏览器中打开它。

这是我遇到问题的代码。问题是,当程序捕获另一个URL时,它打开一个单独的系统浏览器,但它一直滞后,直到我从Android Studio结束应用程序。有人可以解决这个问题,还是有其他选择吗?

webv.setWebChromeClient(new WebChromeClient(){

        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            super.onProgressChanged(view, newProgress);
            if(!webv.getUrl().startsWith("https://lktechtronic.blogspot.com")){
                webv.stopLoading();
                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(webv.getUrl())));
                webv.goBack();
            }else if(webv.getUrl().startsWith("https://lktechtronic.blogspot.com")){
                loadinglay.setVisibility(View.VISIBLE);
                if (newProgress == 100) {
                    loadinglay.setVisibility(View.GONE);
                }
            }
        }
    });
  • webv 是我的WebView
  • loadinglay 是带有ProgressBar的布局

1 个答案:

答案 0 :(得分:0)

您可以实现shouldOverrideUrlLoading并使自己的WebView加载任何重定向。