苹果原生检测网络状态

作者: Frey丶 | 来源:发表于2016-08-29 09:38 被阅读183次

平时,我们大部分人估计都是用的AF自带的检测网络状态类来判断当前手机网络状态,其实苹果原生的检测网络状态的类用着也是很方便和可行的.这里就不赘述苹果原生的优缺点直接上代码.

1.苹果官方提供了一个Reachability示例demo,大家可以下载看下.

https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip

2.从上面的demo中取出Reachability.h和Reachability.m这两个类,拖入到自己的工程中.

3.拖入.h和.m之后我们还需要添加一个系统依赖库,就是SystemConfiguration.framework,(针对小白:  找到build Phases,点击Link Binary with Libraries的箭头,然后点击+号,添加即可)

4.这时候我们所有的准备工作都已经完毕了,大家直接可以在appDelegate类中导入他的头文件Reachability.h,然后在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  方法中实现即可.具体实现请看代码:

5.Reachability *reach = [Reachability reachabilityWithHostName:@"http://www.baidu.com"];//开启网络状态监听

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(myNetStatusChange:) name:kReachabilityChangedNotification object:nil]; // 发送通知,通过kvo来实时监听网络状态变化.

[self.hostReach startNotifier];//开启监听,  特别注意,这步一定要写.

//以下是通知方法的实现.我这里用了个单例存起来来判断.

- (void)myNetStatusChange: (NSNotification *)note

{

Reachability *currentReach = [note object];

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

//判断网络状态

switch (self.hostReach.currentReachabilityStatus) {

case NotReachable:

NSLog(@"网络不通");

break;

case ReachableViaWiFi:

NSLog(@"wifi上网");

[UserInfoCenter shareInstance].netModel = @"wifi"; //我用自己的单例存起来

break;

case ReachableViaWWAN:

NSLog(@"手机上网");

[UserInfoCenter shareInstance].netModel = @"手机自带网络";//我用自己的单例存起来

break;

default:

break;

}

}

6.以上就是使用Reachability的方法,有什么问题和写的不当之处敬请指出留言.

相关文章

  • 苹果原生检测网络状态

    平时,我们大部分人估计都是用的AF自带的检测网络状态类来判断当前手机网络状态,其实苹果原生的检测网络状态的类用着也...

  • iOS中根据网络环境显示不同图片(干货)

    首先说一下怎么监听网络状态的改变 监听网络状态的改变可以使用苹果提供的Reachability来检测网络状态,也可...

  • iOS常用第三方库《二》

    网络测试 Reachability- 苹果提供过一个Reachability类,用于检测网络状态。但是该类由于年代...

  • 网络监控

    本文的意义 利用苹果原生的类Reachability,实时监控网络的状态 利用框架AFNetworking实时监控...

  • iOS网络状态检测-2020-08-27-周四

    网络是APP不可缺少的一环,检测网络是否通也是一个现实的需求。目前所知,检测网络状态有三种方法。 方法1:苹果给的...

  • 检测网络状态

    有2种方式,可以在AppDelegate直接写: 第一种AFNetworkReachabilityManager:...

  • 检测网络状态

    只要网络状态发生了变化,在任何一个视图控制器都会给出相应的提示 说明: 这里需要导入第三方库,1. MBProgr...

  • 检测网络状态

    vc中使用 viewDidLoad---dealloc willAppear --- willDidDisappe...

  • 检测网络状态

    点击查看http://blog.csdn.net/yi_zz32/article/details/50153539

  • iOS下的实际网络连接状态检测

    iOS下的实际网络连接状态检测 iOS下的实际网络连接状态检测

网友评论

    本文标题:苹果原生检测网络状态

    本文链接:https://www.haomeiwen.com/subject/nnzujttx.html