如何检查互联网连接
我使用Apple Reachability类通过使用以下代码检查网络状态
-(BOOL)isInternetConnectionAvailable{
return ([[Reachability reachabilityForInternetConnection]currentReachabilityStatus] == NotReachable)?NO:YES;
}
我有一个移动热点然后用我的iPhone连接那个wifi。
然后移动数据关闭,热点开启。
但是,可更新性类正在返回ReachableViaWiFi
如何检查网络是否有互联网。
答案 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;
}