什么是检查iOS中的互联网连接的最新和有效的方法?

什么是检查iOS中的互联网连接的最新和有效的方法?

问题描述:

我想知道哪些是最新的,有效的方法来检查iOS中的互联网连接。在*中的答案大部分似乎过时了。我经历了REACHABILITY class。它工作正常。但我有一个问题。什么是检查iOS中的互联网连接的最新和有效的方法?

我有一个无线连接,有时要求提供商登录。所以可达性类显示无线连接可用,但互联网不可用。

因此,当我调用一个url时,我使用的activityIndi​​cator和url一起继续旋转,并且我没有收到有关该错误的回调。是否有修复?谢谢。

另外,你能解释一下这些究竟意味着什么吗?

@property (nonatomic) Reachability *hostReachability; 
@property (nonatomic) Reachability *internetReachability; 
@property (nonatomic) Reachability *wifiReachability; 

like,wifiReachability是什么?是连接到wifi?还是互联网可通过wifi?

编辑: 这是我使用now.Creating称为连接类

#import "Connectivity.h" 
#import "Reachability.h" 
@implementation Connectivity 
+(BOOL)checkConnectivity 
{ 
    Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus networkStatus = [reachability currentReachabilityStatus]; 
    return networkStatus != NotReachable; 
} 
@end 

这是否足以检查internetconnection?

+3

我不确定(因此评论),但我会*假设*'hostReachability'是否可以到达网站,'internetRechability'是否有互联网连接(不一定是功能一个),而'wifiReachability'是否与wifi网络连接(不一定是工作连接)。 – Jojodmo

+1

@Jojodmo - 你的假设是正确的。只需补充一点,'internetReachability'检查网络上的默认路由,这基本上不过是检查互联网是否可以在没有连接到特定主机的情况下连接。你应该将它作为答案发布。 – Gandalf

+1

我不认为你不能用'Reachability'检查'真实的互联网连接'。我会使用特定的'REST API'并检查响应是否如预期的那样。 – Ryan

以下是另一个替换非常简单的方法来检查Internet连接:

NSURL *scriptUrl = [NSURL URLWithString:@"http://www.google.com/m"]; 
NSData *data = [NSData dataWithContentsOfURL:scriptUrl]; 
if (data) 
    NSLog(@"Device is connected to the internet"); 
else 
    NSLog(@"Device is not connected to the internet"); 

希望这会有所帮助。