如何在iOS应用程序中实现Reachability(无互联网弹出窗口)的最简单方法?
如何在iOS应用程序中实现Reachability(无互联网弹出窗口)的最简单方法?
该问题已经有答案:
可能的重复问题:
如何在iOS应用程序中最简单地实现Reachability (代码通知用户没有互联网连接)?
admin 更改状态以发布 2023年5月21日
我在我的appDelegate中这样做的
在appDelegate.h中:
@interface myAppDelegate : NSObject{ IBOutlet noInternetViewController *NoInternetViewController; BOOL isShowingNoInternetScreen; }
在appDelegate.m中:
//at top #import "Reachability.h" //somewhere under @implementation -(void)checkInternetConnection { Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"]; NetworkStatus internetStatus = [r currentReachabilityStatus]; if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN)) { if (!isShowingNoInternetConnectionScreen) { [self.navigationController pushViewController:NoInternetViewController animated:YES]; isShowingNoInternetConnectionScreen = YES; } } else if (isShowingNoInternetConnectionScreen) { [self.navigationController popViewControllerAnimated:YES]; isShowingNoInternetConnectionScreen = NO; } } //inside application:didFinishLaunchingWithOptions: or in application:didFinishLaunching isShowingNoInternetConnectionScreen = NO; [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(checkInternetConnection) userInfo:nil repeats:YES];
我正在使用导航控制器,但如果您没有,那么只需将pushViewController:animated:更改为presentModalViewController:animated:,并将popViewControllerAnimated:更改为dismissModalViewController
显然,您需要在Interface Builder中设置一个视图控制器,并将其绑定到IBOutlet。 只需将此设置为用户在无连接时要查看的任何内容即可。