android webview断网,的Android的WebView是网络断开连接后空白

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_web_view_tutorial);

mWebView = (WebView) findViewById(R.id.webView1);

mWebView.setWebViewClient(mWebViewClient);

mWebView.setInitialScale(0);

mWebView.setVerticalScrollBarEnabled(false);

mWebView.requestFocusFromTouch();

WebSettings settings = mWebView.getSettings();

settings.setJavaScriptEnabled(true);

Button btnGo = (Button) findViewById(R.id.button1);

btnGo.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

String url = "http://www.google.com";// here goes my server url with https://...... for authentication

showProgressDialog("Loading");

mWebView.loadUrl(url);

}

});

}

private void showProgressDialog(String title) {

if(mProgress == null || !mProgress.isShowing()){

mProgress = ProgressDialog.show(this, title, "Please wait...", true,

true, new OnCancelListener() {

public void onCancel(DialogInterface pd) {

finishActivity();

}

});

mProgress.setCanceledOnTouchOutside(false);

mProgress.setCancelable(true);

}

}

private void finishActivity() {

if(mWebView!=null){

finish();

}

}

private final WebViewClient mWebViewClient = new WebViewClient() {

public void onPageStarted(WebView view, String url,

android.graphics.Bitmap favicon) {

super.onPageStarted(view, url, favicon);

Log.d("test", "page started");

}

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

Log.d("test", "page should override called");

return super.shouldOverrideUrlLoading(view, url);

}

@Override

public void onPageFinished(WebView view, String url) {

if (mIsLoadingSigninPage) {

mIsLoadingSigninPage = false;

dismissProgressDialog();

}

Log.d("test", "page finished");

super.onPageFinished(view, url);

}

@Override

public void onReceivedError(WebView view, int errorCode,

String description, String failingUrl) {

mIsLoadingSigninPage = false;

dismissProgressDialog();

Log.d("test", "page error received");

super.onReceivedError(view, errorCode, description, failingUrl);

finishActivity();

}

};

private void dismissProgressDialog() {

if (mProgress != null && mProgress.isShowing()) {

mProgress.dismiss();

mProgress =null;

}

}

//这是3点日志猫低于

03-07 07:31:20.977: D/test(1431): page started

03-07 07:31:22.788: D/test(1431): page should override called

03-07 07:31:22.887: D/test(1431): page started

03-07 07:31:24.496: D/test(1431): page finished

好吧,

当网络不可用我跑这段代码,webviewclient的onReceivedError被调用,

如果网络可用和页面加载开始,并且网络断开,那么onReceivedError也会被调用。

但有时间的一些实例,mWebView.loadUrl(URL)被调用(与模拟器F8按下按钮,断开网络后数1,2,3),webViewclient的方法被调用像下面

和WebView显示空白屏幕,未调用onReceivedError。 这里是logcat的

什么不对这个代码。

为什么没有调用onReceivedError。如果它不被调用,如何处理这种情况

如何知道web视图没有加载点儿并完成活动

2013-03-07

Baba

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值