this 질문을 사용하여 인터넷 연결 (WiFi \ 3G)이 활성화되어 있는지 확인했습니다.도달 가능성 - 인터넷이 다시 연결되는 동안 호스트가 나타납니다.
아주 잘 작동하지만 작은 문제가 있습니다.
인터넷을 끄면 앱이 인터넷이 다운되었다는 경고를 표시합니다. 하지만 다시 켜면 접속이 확실히 올라갈 때까지 호스트가 실제로 다운되어 있다고 말하면서 사실, 잠시 후 로그가 올라옵니다.
인터넷에 다시 연결하는 동안 실제로 서버가 다운되었을 때만 해당 메시지가 표시되도록하려면 어떻게해야할까요?
여기에 내 코드
-(void) checkNetworkStatus:(NSNotification *)notice
{
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
if (internetStatus == NotReachable){
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Reloading Failed" message: @Seems like you're offline! \n Some features, such as updating contents and downloading screenshots won't be available while you're offline.\nNavigate to Settings > Wi-Fi to connect to the Internet and enjoy those features!") delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
[alert show];
[alert release];
NSLog(@"offline");
}
else if (internetStatus == ReachableViaWiFi || internetStatus == ReachableViaWWAN){
NSLog(@"online");
if (hostStatus == NotReachable)
{ NSLog(@"Server offline");
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Reloading Failed" message:@"Seems like there's a communication problem with the remote network. \n Please try again in a while!" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
[alert show];
[alert release];
}
else if (hostStatus == ReachableViaWWAN || hostStatus == ReachableViaWiFi){
NSLog(@"server online");
//download data from remote server
}
}
}
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
internetReachable = [[Reachability reachabilityForInternetConnection] retain];
[internetReachable startNotifier];
hostReachable = [[Reachability reachabilityWithHostName: @"www.mywebsite.com"] retain];
[hostReachable startNotifier];
어떤 아이디어가있어?
Reachability의 어떤 버전을 사용하고 있습니까? – Joe
도달 범위 버전 2.2 – Phillip
특정 호스트가 실제로 작동하는지 확인하고 연결하려면 NSURLConnection 등의 연결을 열어야합니다. 도달 가능성은 장치에 네트워크 연결이 무엇인지 알려줍니다. – onnoweb