今日、ベータ版のアプリを公開しました。私はホテルにいましたが、WiFi のアクセス コードをまだ取得していませんでした。到達可能性をテストしているときに、本来あるべき失敗をしていないことに気付きました。WiFiに接続されていましたが、ログインしていなかったため、実際には何も到達できませんでした。このユースケースは、 reachabilityWithHostnameでカバーする必要があります。これが私のコードです:
AppDelegate.h で:
@interface AppDelegate : UIResponder <UIApplicationDelegate> {
Reachability* hostReach;
Reachability* internetReach;
Reachability* wifiReach;
}
AppDelegate.m で:
internetReach = [Reachability reachabilityForInternetConnection];
[internetReach startNotifier];
wifiReach = [Reachability reachabilityForLocalWiFi];
[wifiReach startNotifier];
hostReach = [Reachability reachabilityWithHostname: @"http://www.google.com"];
[hostReach connectionRequired];
[hostReach startNotifier];
接続が必要なモジュール:
- (BOOL) isInternetReachable
{
Reachability *currentReach = [Reachability reachabilityForInternetConnection];
NetworkStatus netStatus = [currentReach currentReachabilityStatus];
return (netStatus == ReachableViaWiFi || netStatus == ReachableViaWWAN);
}
この状況をカバーする方法を知っている人はいますか?