2

IOS アプリで到達可能性を使用して接続を決定しています。

この投稿に続いて、iphoneシミュレーターでのwifi

Wi-Fi がオフになっている場合、シミュレーターのインターネット接続は利用できませんが、電話はまだ Wi-Fi に接続されているため、接続は変更されていません。これはすべて問題なく理解されており、もちろんデバイス自体でテストできます。

ただし、ユーザーがwifiに接続しているが、wifiには以下のスクリーンショットのようなインターネット接続がないというエラーを処理しようとしています.

到達可能性を次のように使用します。

#pragma mark - ()
- (void)monitorReachability {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:ReachabilityChangedNotification object:nil];

self.hostReach = [Reachability reachabilityWithHostname: @"api.parse.com"];
[self.hostReach startNotifier];

self.internetReach = [Reachability reachabilityForInternetConnection];
[self.internetReach startNotifier];

self.wifiReach = [Reachability reachabilityForLocalWiFi];
[self.wifiReach startNotifier];

}

//ステータスが変化するたびに、Reachability によって呼び出されます。- (void)reachabilityChanged:(NSNotification* )note { Reachability *curReach = (Reachability *)[メモ オブジェクト]; NSParameterAssert([curReach isKindOfClass: [到達可能性クラス]]); NSLog(@"到達可能性が変更されました: %@", curReach); networkStatus = [curReach currentReachabilityStatus];

}

tonymillion の github から ARC の到達可能性を使用しています: https://github.com/tonymillion/Reachability

この接続の状況をより良いエラーで処理する方法を知っている人はいますか? ここに画像の説明を入力

4

1 に答える 1

2

appdelegate で次のメソッドを作成して、任意のクラスで使用します。

-(BOOL)isHostAvailable
{
    //return NO; // force for offline testing
    Reachability *hostReach = [Reachability reachabilityForInternetConnection];
    NetworkStatus netStatus = [hostReach currentReachabilityStatus];
    return !(netStatus == NotReachable);
}
于 2012-09-07T09:17:41.923 に答える