我想查看用户是否有有效的互联网连接。这就是我实现它的方式。它似乎工作正常,但问题是它总是显示我的iPhone模拟器(uialert出现)没有连接,即使我的wifi打开或关闭。有谁知道我做错了什么? 谢谢你的帮助!
Reachability *r= [Reachability reachabilityWithHostName:@"http://www.google.com"];
NetworkStatus internetStatus= [r currentReachabilityStatus];
if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN))
{
UIAlertView *alert= [[UIAlertView alloc] initWithTitle:@"No internet" message:@"No internet connection found. Please try again later"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
else {
// execute code in app
}
答案 0 :(得分:6)
这就是我在我的应用中完成的方式:
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus internetStatus = [reachability currentReachabilityStatus];
if(internetStatus == NotReachable) {
UIAlertView *errorView;
errorView = [[UIAlertView alloc]
initWithTitle: NSLocalizedString(@"Network error", @"Network error")
message: NSLocalizedString(@"No internet connection found, this application requires an internet connection to gather the data required.", @"Network error")
delegate: self
cancelButtonTitle: NSLocalizedString(@"Close", @"Network error") otherButtonTitles: nil];
[errorView show];
[errorView autorelease];
}
它检查互联网连接是什么,而不是它是否可以到达域。如果没有互联网连接(wifi或celluar),它将显示UIAlertView消息(本地化)。
答案 1 :(得分:0)
不要检查。收音机通常在可达性报告没有网络后开始启动并建立连接(可达性报告没有网络可能是启动此过程的因素,因此几秒钟后它自己的答案都是假的。)