gpt4 book ai didi

ios - 如何在 ios 中检查互联网是否正常工作

转载 作者:行者123 更新时间:2023-11-29 02:06:53 27 4
gpt4 key购买 nike

我正在尝试使用 AFNetworking 检测设备上的互联网是否正常工作;在 SO 上提到这里的答案 AFNetworking 2.0 Reachability .我能够检测到设备已连接到 WiFi 或 3G..

问题是实际上互联网无法正常工作,就像 WIFI 打开一样,但互联网无法正常工作。

我如何检测互联网是否正常工作。就像我们使用 ping 检查....

我正在使用以下内容进行检查

-(BOOL)connected {

__block BOOL reachable;

// Setting block doesn't means you area running it right now
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

switch (status) {
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"No Internet Connection");
reachable = NO;
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WIFI");

reachable = YES;
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"3G");
reachable = YES;
break;
default:
NSLog(@"Unkown network status");
reachable = NO;
break;

}
}];
// and now activate monitoring
[[AFNetworkReachabilityManager sharedManager] startMonitoring];

return reachable;

最佳答案

添加网络状态变化的通知观察者。就像在完成启动类下的应用程序委托(delegate)类中添加以下代码

 [[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNetworkChnageNotification:) name:AFNetworkingReachabilityDidChangeNotification object:nil];

在.h 文件中添加全局alertview。因为它会随着网络状态的变化而出现和消失。

这里是调用的通知函数:

- (void)receiveNetworkChnageNotification:(NSNotification *)notification
{
if (![self isReachable])
{
self.alertView = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"You have no internet connection on your device, please check and try again later." delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
[self.alertView show];
}
else
{
[self.alertView dismissWithClickedButtonIndex:0 animated:YES];
}
}

关于ios - 如何在 ios 中检查互联网是否正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29698052/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com