iOS 真的检查互联网连接
iOS really check internet connection
我有一个问题 - 我需要检查真正的互联网连接。我现在应该做什么?现在我使用 Reachability class 来检查是否有互联网连接,但在这种情况下我的应用程序崩溃了:我已经连接到机场的 wifi,它是免费的fi 但如果我没有注册我就不能冲浪。但是 Reachability 认为我已经上网 connection.How 我现在使用 Reachability?
if(self.internetReachableFoo.isReachable)
{
// We have internet
}
else
{
//we have no internet
}
所以我的问题是,如何使用 Reachability 或其他工具来检查真实的互联网连接?
谢谢。
您可以尝试连接到您知道始终可用的服务,例如 Google 的 public DNS 服务器。一个简单的 ping 就足够了。
我正在使用这个解决方案:
@implementation SomeClass{
Reachability* hostReachable;
}
将此添加到您的 viewDidLoad
方法中
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
hostReachable = [Reachability reachabilityWithHostName:@"www.apple.com"];
[hostReachable startNotifier];
还有这个方法:
-(void) checkNetworkStatus:(NSNotification *)notice
{
NetworkStatus hostStatus = [self.hostReachable currentReachabilityStatus];
switch (hostStatus)
{
case NotReachable:
{
NSLog(@"NotReachable");
break;
}
case ReachableViaWiFi:
{
NSLog(@"ReachableViaWiFi");
break;
}
case ReachableViaWWAN:
{
NSLog(@"ReachableViaWWAN");
break;
}
}
}
如果你不想检查互联网连接,那么你可以使用可达性块
Reachability *reachability = [Reachability reachabilityWithHostname:@"www.google.com"];
reachability.reachableBlock = ^(Reachability *reachability) {
NSLog(@"Network is reachable.");
};
reachability.unreachableBlock = ^(Reachability *reachability) {
NSLog(@"Network is unreachable.");
};
// Start Monitoring
[reachability startNotifier];
我有一个问题 - 我需要检查真正的互联网连接。我现在应该做什么?现在我使用 Reachability class 来检查是否有互联网连接,但在这种情况下我的应用程序崩溃了:我已经连接到机场的 wifi,它是免费的fi 但如果我没有注册我就不能冲浪。但是 Reachability 认为我已经上网 connection.How 我现在使用 Reachability?
if(self.internetReachableFoo.isReachable)
{
// We have internet
}
else
{
//we have no internet
}
所以我的问题是,如何使用 Reachability 或其他工具来检查真实的互联网连接? 谢谢。
您可以尝试连接到您知道始终可用的服务,例如 Google 的 public DNS 服务器。一个简单的 ping 就足够了。
我正在使用这个解决方案:
@implementation SomeClass{
Reachability* hostReachable;
}
将此添加到您的 viewDidLoad
方法中
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
hostReachable = [Reachability reachabilityWithHostName:@"www.apple.com"];
[hostReachable startNotifier];
还有这个方法:
-(void) checkNetworkStatus:(NSNotification *)notice
{
NetworkStatus hostStatus = [self.hostReachable currentReachabilityStatus];
switch (hostStatus)
{
case NotReachable:
{
NSLog(@"NotReachable");
break;
}
case ReachableViaWiFi:
{
NSLog(@"ReachableViaWiFi");
break;
}
case ReachableViaWWAN:
{
NSLog(@"ReachableViaWWAN");
break;
}
}
}
如果你不想检查互联网连接,那么你可以使用可达性块
Reachability *reachability = [Reachability reachabilityWithHostname:@"www.google.com"];
reachability.reachableBlock = ^(Reachability *reachability) {
NSLog(@"Network is reachable.");
};
reachability.unreachableBlock = ^(Reachability *reachability) {
NSLog(@"Network is unreachable.");
};
// Start Monitoring
[reachability startNotifier];