有没有办法在 WebView 中设置超时值?如果 url 响应太慢,我希望 WebView 超时。
问问题
26015 次
3 回答
11
您可以通过设置一个 Timer 来执行此操作,该 Timer 通过调用getProgress () 检查当前页面的进度,如果在某个指定时间后它小于某个阈值,则您可以关闭当前页面的加载。
于 2010-11-29T10:53:41.727 回答
5
我们可以使用onLoadResource
方法 ofWebViewClient
代替Timer
。像这样:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progressDialog.show();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.d("WEBCLIENT", "onPageFinished");
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
Log.d("WEBCLIENT","onLoadResource");
if(webView.getProgress() == 100) {
progressDialog.dismiss();
}
}
}
于 2015-07-21T11:05:58.400 回答
1
我用
@Override
public void onReceivedError(WebView view, int errorCod,String description, String failingUrl) {
final Dialog dialog = new Dialog(MainActivity.this, android.R.style.Theme_NoTitleBar_Fullscreen);
dialog.setContentView(R.layout.alert_dialog);
Button btTryAgain = dialog.findViewById(R.id.bt_try_again);
btTryAgain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
recreate();
}
});
dialog.show();
//Toast with error conection
Toast.makeText(getApplicationContext(), "Your Internet Connection May not be active Or " + description , Toast.LENGTH_LONG).show();
}
其中 -alert_dialog- 是带有重试按钮的布局
于 2020-12-27T22:48:52.263 回答