如何在Wifi中查看可用的Internet

时间:2017-03-13 13:10:23

标签: ios iphone reachability

如何检查互联网连接

我使用Apple Reachability类通过使用以下代码检查网络状态

-(BOOL)isInternetConnectionAvailable{

    return ([[Reachability reachabilityForInternetConnection]currentReachabilityStatus] == NotReachable)?NO:YES;
}

我有一个移动热点然后用我的iPhone连接那个wifi。 然后移动数据关闭,热点开启。 但是,可更新性类正在返回ReachableViaWiFi 如何检查网络是否有互联网。

1 个答案:

答案 0 :(得分:0)

为此您需要检查互联网,为此制作一个互联网验证课程,然后在您使用互联网的每个地方拨打该课程。

在你的.h文件中创建一个静态方法,如下所示。

#import <Foundation/Foundation.h>

@interface InternetValidation : NSObject {

}

+ (BOOL) connectedToNetwork;

@end

然后,在.m文件中

#import "InternetValidation.h"
#import <SystemConfiguration/SCNetworkReachability.h>
#include <netinet/in.h>

@implementation InternetValidation

+ (BOOL) connectedToNetwork
{


    BOOL success = NO;
    const char *host_name = [@"google.com"
                             cStringUsingEncoding:NSASCIIStringEncoding];

    SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
                                                                                host_name);
    SCNetworkReachabilityFlags flags;
    success = SCNetworkReachabilityGetFlags(reachability, &flags);
    BOOL isAvailable = success && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);
    if (isAvailable) {
        success = YES;
    }else{
        success = NO;
    }
    //NSLog(@"%d",success);
    return success;

}


@end

现在,将此类导入您要检查互联网的位置。

然后像这样调用互联网类方法。

if ([InternetValidation connectedToNetwork]){
    //Do your code here.
}
else{
    // No Internet;
}