簡體   English   中英

可達性iOS無法正常運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM