今天,我公开发布了我的Beta版应用程序。我当时在一家酒店,还没有获得WiFi的访问代码。在测试可达性时,我注意到它并没有像它应该的那样失败。它是连接到WiFi的,但是由于我没有登录,所以没有任何东西可以联系到。这个用例应该包含在reachabilityWithHostname.中。这是我的密码:
在附录代表中:
@interface AppDelegate : UIResponder <UIApplicationDelegate> {
Reachability* hostReach;
Reachability* internetReach;
Reachability* wifiReach;
}在附录代表中:
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);
}有人知道如何掩盖这种情况吗?
发布于 2013-03-09 03:07:19
...
[Reachability reachabilityWithHostname: @"http://www.google.com"]
...您应该在每个http://中使用主机名(没有苹果的文档 )。
发布于 2013-03-09 03:18:47
你使用Reachability是错误的。苹果的文档非常糟糕,所以忽略它吧。
诀窍是首先尝试在没有咨询的情况下建立一个网络连接的。NSURLConnection将启动收音机并根据需要进行连接。当然,一定要处理错误。
当网络离线后恢复联机时,可达性仍然非常有用。如果您有事先无法发送/接收的信息,您可以在此重新尝试连接。
另外,您不应该在主线程上调用Reachability。在质量较差的网络上,特别是高丢包或DNS中断的情况下,Reachability会挂起你的应用程序超过20秒,系统会杀死你。
发布于 2013-08-20 12:22:06
我使用可达性来证明网络层。当它应该是好的,我试着从我的服务器加载一个字节的文件,以真正确定。表演没问题。
BOOL isOnline = [[[RKClient sharedClient] reachabilityObserver] isReachabilityDetermined] != YES || [[RKClient sharedClient] isNetworkReachable];
if(isOnline){
NSData *data = [NSData dataWithContentsOfURL:[[URLManager sharedInstance]availabilityCheckURL]];
NSString *strTemp = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
isOnline = [strTemp isEqualToString:@"1"];
}https://stackoverflow.com/questions/15306658
复制相似问题