问题描述
我正在尝试在android studio中制作一个网络抓取应用程序,在该应用程序中,我想对提取的数据使用Java代码执行一些操作。 问题是webview是异步工作的,也就是说,它将继续执行相同方法的其余行以及将网站加载到webview中。 但是我的webview.url调用后的代码需要仅在站点完全加载时才可用的数据,因此我希望java等待站点完全加载然后执行剩余的代码行。 任何建议表示赞赏
解决方法
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);
}
}