IOS使用Reachability实时检测网络连接状况

开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审查的。


Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。在你的程序中使用 Reachability 只须将该例程中的 Reachability.h 和 Reachability.m 拷贝到你的工程中,然后将 SystemConfiguration.framework 添加进工程

Reachability 中定义了3种网络状态。

typedefenum : NSInteger {

NotReachable =0,//无网络链接

ReachableViaWiFi,//无线网络链接

ReachableViaWWAN,//3G/GPRS网络链接

} NetworkStatus;


程序示例:

//在程序的启动处,开启通知

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

  //.....

 

//开启网络状况的监听

[[NSNotificationCenter defaultCenteraddObserver:self

         selector:@selector(reachabilityChanged:)

     namekReachabilityChangedNotification

   objectnil];

hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"retain];//可以以多种形式初始化

[hostReach startNotifier];  //开始监听,会启动一个run loop

        [self updateInterfaceWithReachabilityhostReach];

  //.....

}


// 连接改变

 

- (void) reachabilityChanged: (NSNotification* )note

{

Reachability* curReach = [note object];

NSParameterAssert([curReach isKindOfClass: [Reachability class]]);

[self updateInterfaceWithReachability: curReach];

}


//处理连接改变后的情况

 

- (void) updateInterfaceWithReachability: (Reachability*) curReach

{

    //对连接改变做出响应的处理动作。

 

        NetworkStatus status = [curReach currentReachabilityStatus];

    

if (status == NotReachable) {  //没有连接到网络就弹出提实况

UIAlertView *alert = [[UIAlertView allocinitWithTitle:@"My App Name"

                              message:@"NotReachable"

                              delegate:nil

                              cancelButtonTitle:@"YES" otherButtonTitles:nil];

                              [alert show];

                              [alert release];

}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值