在我的项目中,我正在使用Apple提供的Reachability类。当没有互联网连接时,我正在显示警告信息。当我在模拟器上测试时,一切正常,但是当我在iPad上运行它时,没有互联网时就不会显示警告信息。
我在iOS 5.0上运行代码。
任何帮助都将不胜感激。
编辑:
-(BOOL)isInternetConnectionPresent{
Reachability *objReachability = [Reachability reachabilityForInternetConnection];
NetworkStatus internetStatus = [objReachability currentReachabilityStatus];
if(internetStatus != NotReachable)
{
return YES;
}
return NO;
}
更新:
使用NSLog进行调试。似乎WWAN存在一些问题,即使没有SIM卡也是如此。重启iPad&关闭&再次在Wi Fi上。现在它工作正常。谢谢你的帮助。
答案 0 :(得分:1)
您必须检查所有 NetworkStatus 并交叉检查设备 Wifi连接状态
示例:强>
// to check if, wifi connected properly in current device.
- (BOOL)networkCheck {
Reachability *wifiReach = [Reachability reachabilityForInternetConnection];
NetworkStatus netStatus = [wifiReach currentReachabilityStatus];
switch (netStatus)
{
case NotReachable:
{
NSLog(@"NETWORKCHECK: Not Connected");
return NO;
break;
}
case ReachableViaWWAN:
{
NSLog(@"NETWORKCHECK: Connected Via WWAN");
return NO;
break;
}
case ReachableViaWiFi:
{
NSLog(@"NETWORKCHECK: Connected Via WiFi");
return YES;
break;
}
}
return false;
}
答案 1 :(得分:0)
在我的情况下,以下代码段与iOS 5完美配合。我在这里检查WIFI的互联网连接。
- (NSString *)stringFromStatus:(NetworkStatus ) status {
NSString *string;
switch(status) {
case NotReachable:
string = @"Not Reachable";
break;
case ReachableViaWiFi:
string = @"Reachable via WiFi";
break;
case ReachableViaWWAN:
string = @"Reachable via WWAN";
break;
default:
string = @"Unknown";
break;
}
return string;
}
------------------------现在可以查看以下代码行。
Reachability *reach =[Reachability reachabilityForLocalWiFi] ;
NetworkStatus status = [reach currentReachabilityStatus];
NSLog(@"%@", [self stringFromStatus: status]);
if ([[self stringFromStatus: status] isEqualToString: @"Not Reachable"])
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Connection Failure !"
message:@"Your Device is not Connected to any active WIFI Connection."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
else
{ //connected to internet.
}