我只是想知道当设备连接到wifi但在调制解调器中没有互联网连接时如何检测iOS中的互联网连接。
我使用过苹果和AFNetworking的可达性,但他们只检查连接并返回连接标志,即使调制解调器中没有可用的互联网。
答案 0 :(得分:1)
我通过Reachability击中主机找到了解决方案: -
可能对某人有帮助。
-(BOOL)isCheckConnection {
Reachability *rc = [Reachability reachabilityWithHostName:@"www.google.com"];
NetworkStatus internetStatus = [rc currentReachabilityStatus];
if(internetStatus==0)
{
//@"NoAccess";
return NO;
}
else if(internetStatus==1)
{
//@"ReachableViaWiFi";
return YES;
} else if(internetStatus==2)
{
//@"ReachableViaWWAN";
return YES;
}
else
{
//@"Reachable";
return YES;
}
}
答案 1 :(得分:1)
为了确保您的设备真正连接到互联网,至少您必须尝试ping up& running at anytime 服务器(例如stackoverflow.com或google.com)
当然,正如问题评论中@jonrsharpe所建议的那样,如果需要进行此项检查以了解应用是否可以访问网络服务器,那么还需要对您的网络服务器执行ping操作等。
但ping到一个运行良好的网络服务器(如谷歌)会给你答案它你的设备连接到互联网(所以你的调制解调器可以到达互联网),这样,如果您的网络服务器没有响应,你可以相应地显示您的应用中的警告提示,通知用户当前您的服务器无法访问。
转到代码,您可以尝试使用Reachability
library检查连接状态,如下所示
Reachability *reachability = [Reachability reachabilityWithHostName:@"stackoverflow.com"];
NetworkStatus networkStatus = [reachability currentReachabilityStatus];
然后检查networkStatus
变量:如果0
您无权访问互联网,则为YES
,所以
if(networkStatus==0) {
// no access to internet
} else {
// you have access to internet
}