[英]Reachability iOS doesn't work fine
我們正在開發一個模塊,該模塊檢查Internet連接是處於活動狀態還是非活動狀態或已禁用。 除存在WI-FI連接但互聯網未激活的情況外,上述方案均能很好地工作。 我們確保未啟用數據移動連接(3G,4G)。
我們已經看到,每個人都建議使用Tony Million的Reachability類,它代替了Apple的。
下面是我們正在使用的代碼:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
Reachability *reachability = [Reachability reachabilityWithHostname:@"www.google.com"]; //Cambiar por el servidor
reachability.reachableBlock = ^(Reachability *reachability) {
NSLog(@"Network is reachable.");
};
reachability.unreachableBlock = ^(Reachability *reachability) {
NSLog(@"Network is unreachable.");
};
// Start Monitoring
[reachability startNotifier];
return YES;
}
是否有WI-FI連接但互聯網未激活,因此無法工作,因為它會:
reachability.reachableBlock = ^(Reachability *reachability) {
NSLog(@"Network is reachable.");
}
代替
reachability.unreachableBlock = ^(Reachability *reachability) {
NSLog(@"Network is unreachable.");
}
我們缺少什么?
先感謝您,
問候
試試這個
- (BOOL)isNetAvailable
{
BOOL isNetAvailable = NO;
Reachability *reach = [Reachability reachabilityWithHostName:@"www.google.com"];
NetworkStatus netStatus = [reach currentReachabilityStatus];
if (netStatus != NotReachable)
{
isNetAvailable = YES;
}
else
{
isNetAvailable = NO;
}
return isNetAvailable;
}
您可以使用 :
NSURLRequest *nsrequest = [NSURLRequest requestWithURL:[NSURL URLWithString: @"http://www.google.com"]];
NSHTTPURLResponse *response = nil;
NSError *error;
NSData *data = [NSURLConnection sendSynchronousRequest:nsrequest returningResponse:&response error:&error];
if(response.statusCode==0){
NSLog(@"Network is unreachable.");
}
else{
NSLog(@"Network is reachable.");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.