android webview 检测联网

发布网友 发布时间:2022-04-27 02:39

我来回答

3个回答

热心网友 时间:2022-06-24 22:45

返回false就表示网络不可用,里面做了wifi和2G 3G判断,如果要求在wifi环境下才联网,可以自己改一下,当类型是TYPE_MOBILE时返回false就可以了。

示例用法:
if(!checkNetworkAvailable(MainActivity.this)){
// 加载网页
}

// 以下是检测网络的方法体

public static boolean checkNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
NetworkInfo netWorkInfo = info[i];
if (netWorkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
} else if (netWorkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
}
}
}
}

return false;

}

热心网友 时间:2022-06-24 22:45

Android的WebView检测加载网页的几种方式及网络异常处理:
1.加载本地assert目录下文件(error.html)
webcontent.loadUrl(" file:///android_asset/error.html ");

2.加载网络url(http://www.csdn.com)
webcontent.loadUrl(" http://www.csdn.com ");
3.加载 String 类型html
String

errorHtml = "<html><body><h1>Page not find!</h1></body></html>";
webcontent.loadData(errorHtml,
"text/html", "UTF-8");
4.加载SD卡html:
webcontent.loadUrl(" content://com.android.htmlfileprovider/sdcard/kris.html ");

异常处理:
webcontent.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
Log.i("webview", "url = "+url);
view.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
//这里进行无网络或错误处理,具体可以根据errorCode的值进行判断,做跟详细的处理。
view.loadUrl(file:///android_asset/error.html );
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.i("onPageStarted", url);
super.onPageStarted(view, url, favicon);
}

@Override
public void onPageFinished(WebView view, String url) {
Log.i("onPageFinished", url);
super.onPageFinished(view, url);
}
});

热心网友 时间:2022-06-24 22:46

public static boolean isNetworkAvailable(Context ctx) {
ConnectivityManager cm = (ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
return (info != null && info.isConnected());
}
加载网页前用这个函数判断联网情况追问加载网页时如何调用这个代码?

追答复写WebViewClient的shouldOverrideUrlLoading方法 在里面判断

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com