【问题标题】:How to stop java code execution util a link in webView is loaded completely in android studio如何停止java代码执行util webView中的链接在android studio中完全加载
【发布时间】:2020-10-07 19:07:50
【问题描述】:

我正在尝试在 android studio 中制作一个网络抓取应用程序,在提取的数据上我想使用 java 代码执行一些操作。 问题是 webview 是异步工作的,也就是说,它将继续执行相同方法的剩余行以及在 webview 中加载网站。 但是我在 webview.url 调用之后的代码需要只有在站点完全加载时才可用的数据,所以我希望 java 等待,让站点完全加载然后执行剩余的代码行。 任何建议表示赞赏

【问题讨论】:

    标签: android-studio asynchronous time-wait webviewchromium


    【解决方案1】:
    webView = (WebView) findViewById(R.id.webView);
    webView.setWebViewClient(new MyWebViewClient());
    
    progress = (ProgressBar) findViewById(R.id.progressBar);
    progress.setVisibility(View.GONE);
    
    private class MyWebViewClient extends WebViewClient {   
     @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    
         @Override
        public void onPageFinished(WebView view, String url) {
             progress.setVisibility(View.GONE);             
            super.onPageFinished(view, url);
     // Here webview for finished loading
        }
    
         @Override
         public void onPageStarted(WebView view, String url, 
     Bitmap favicon) {
              progress.setVisibility(View.VISIBLE);          
            super.onPageStarted(view, url, favicon);
        }
     }
    

    【讨论】:

    • 感谢您的建议,但问题是我有 3 个不同的活动使用 webview 加载 url,所以我制作了一个单独的通用文件来编写所有 webview 函数并使用该文件对象加载 url 和获取报废数据。所以我想概括 onPageFinished 函数,从调用活动中调用不同的函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2012-09-14
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    相关资源
    最近更新 更多