在 iOS 应用程序中实现可达性(无 Internet 弹出窗口)的最简单方法是啥? [复制]
Posted
技术标签:
【中文标题】在 iOS 应用程序中实现可达性(无 Internet 弹出窗口)的最简单方法是啥? [复制]【英文标题】:What is the simplest way to implement Reachability (No Internet popup) into an iOS App? [duplicate]在 iOS 应用程序中实现可达性(无 Internet 弹出窗口)的最简单方法是什么? [复制] 【发布时间】:2011-11-04 02:48:27 【问题描述】:可能重复:How to check for an active Internet Connection on iPhone SDK?
在 ios 应用中实现可达性(通知用户没有互联网连接的代码)的最简单方法是什么?
【问题讨论】:
见:***.com/questions/1083701/… 【参考方案1】:我在我的 appDelegate 中这样做了
在 appDelegate.h 中:
@interface myAppDelegate : NSObject <UIApplicationDelegate>
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 相关联。只需将此设置为您希望用户在没有连接时看到的任何内容。
【讨论】:
以上是关于在 iOS 应用程序中实现可达性(无 Internet 弹出窗口)的最简单方法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章