Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS中检查internet连接的最新有效方法是什么?_Ios_Objective C_Reachability_Internet Connection - Fatal编程技术网

在iOS中检查internet连接的最新有效方法是什么?

在iOS中检查internet连接的最新有效方法是什么?,ios,objective-c,reachability,internet-connection,Ios,Objective C,Reachability,Internet Connection,我想知道在iOS中检查互联网连接的最新有效方法是什么。stackoverflow中的大多数答案似乎都过时了。我通过了。它工作正常。但我有一个问题 我有一个wifi连接,有时要求提供商登录。因此,可达性类显示wifi连接可用,但internet不可用 因此,当我调用url时,我与url一起使用的activityIndicator一直在旋转,并且没有收到关于错误的回调。有修复方法吗?谢谢 另外,你能解释一下这些确切的意思吗 @property (nonatomic) Reachability *ho

我想知道在iOS中检查互联网连接的最新有效方法是什么。stackoverflow中的大多数答案似乎都过时了。我通过了。它工作正常。但我有一个问题

我有一个wifi连接,有时要求提供商登录。因此,可达性类显示wifi连接可用,但internet不可用

因此,当我调用url时,我与url一起使用的activityIndicator一直在旋转,并且没有收到关于错误的回调。有修复方法吗?谢谢

另外,你能解释一下这些确切的意思吗

@property (nonatomic) Reachability *hostReachability;
@property (nonatomic) Reachability *internetReachability;
@property (nonatomic) Reachability *wifiReachability;
比如,什么是无线接入能力?它是连接到wifi的吗?还是通过wifi可以上网

编辑: 这就是我现在使用的。创建一个名为connectivity的类

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

这足以检查internet连接吗?

以下是检查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");

希望这会有所帮助。

我不确定(因此评论),但我会假设
主机可访问性
是指是否可以访问网站,
互联网可访问性
是指是否存在互联网连接(不一定是功能性连接),而
wifiReachability
是指是否存在到wifi网络的连接(不一定是工作连接)。@jodmo-你的假设是正确的。再加上,
internetReachability
检查网络上的默认路由,这基本上就是检查互联网是否可以在不接触特定主机的情况下连接。你应该把它作为答案贴出来。我不认为你不能用
可达性检查
真正的互联网连接。我会使用一个特定的
RESTAPI
,并检查响应是否符合预期。这是一个很好的技巧!)阿比希请参考此链接