在我们的项目中,经常需要对WebView中加载的内容是否完成或者是否加载失败进行判别,这两天写的一个小应用就涉及到了这一点。
WebView的实质就是loadUrl,所以前提是设备接入网络,那么这个如何判断呢?看代码吧:
// 网络状态
public boolean isNetworkConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager
.getActiveNetworkInfo();
if (mNetworkInfo != null) {
return mNetworkInfo.isAvailable();
}
}
return false;
在使用WebView的过程中,我发现在当前Activity加载网页之外,还会打开浏览器加载我们的URL。需要在
wvLast.setWebViewClient(new WebViewClient() {
// ... ...
}
中进行以下复写:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
// return super.shouldOverrideUrlLoading(view, url);
view.loadUrl(url);
return true;
}@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
// super.onPageFinished(view, url);
finish();
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// TODO Auto-generated method stub
super.onReceivedError(view, errorCode, description, failingUrl);
Toast.makeText(onSave.this, "同步失败,请稍候再试", Toast.LENGTH_SHORT)
.show();
}
要注意的是,网页加载失败也是加载完成的一种,就是加载进度也是100,这样onReceivedError就显得不可或缺了。
转载请注明出处:周木水的CSDN博客 http://blog.csdn.net/zhoumushui
我的GitHub:周木水的GitHub https://github.com/zhoumushui
Android网络状态获取和WebView的加载完成,加载失败监听
原文地址:http://blog.csdn.net/zhoumushui/article/details/41006711