iOS开发之网络编程:8-网络状态监测之Reachability的使用
Reachability简介
在iOS的开发过程中,应用程序有时需要判断设备当前的网络状态,并由此来控制某些消耗网络流量较多的功能(如无图模式、仅WiFi下播放视频等)。借助Reachability可以用来监测网络环境。Reachability是一个在iOS系统环境下检测iOS设备当前的网络环境的库。它的主要功能是监测三种网络环境:2G/3G/4G、WiFi网络、无网络。在应用的运行状态下,实时监测网络连接方式的变更,及时给出通知。
Reachability这个类在官方SDK中并没有添加,但是在苹果开发者中心我们可以下载到其示例代码,可以从示例代码中,把Reachability.h/.m添加到我们的工程中。
苹果开发者中心提供的Reachability示例代码下载地址:https://developer.apple.com/library/content/samplecode/Reachability/Introduction/Intro.html.
Reachability的使用
从苹果开发者中心下载的Reachability示例代码中,将Reachability.h/.m文件添加到工程当中,在使用的类中引入头文件即可。
#import "Reachability.h"
在Reachability类中提供了一个名称为kReachabilityChangedNotification类型的通知,我们需要首先在通知中心注册该通知。然后调用startNotifier方法,启动监测。
- (void)viewDidLoad {
[super viewDidLoad];
//注册通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange:) name:kReachabilityChangedNotification object:nil];
//启动监测
Reachability *reach = [Reachability reachabilityWithHostName:@"www.99ios.com"];
[reach startNotifier];
}
实现networkStateChange:方法,在通知携带的对象中,可以获取当前网络环境信息。
- (void)networkStateChange:(NSNotification *) notification{
Reachability *reach = (Reachability *)[notification object];
NetworkStatus status = [reach currentReachabilityStatus];
switch (status) {
case ReachableViaWWAN:{
NSLog(@"正在使用3G/4G网络");
break;
}
case ReachableViaWiFi:{
NSLog(@"正在使用WIFI");
break;
}
case NotReachable:{
NSLog(@"未知或无网络");
break;
}
default:
break;
}
}
示例代码
文章发布时间为: November 27th , 2016 at 09:32 pm
最后编辑时间为: September 15th , 2017 at 05:17 am
本文由 99ios 创作,转载请注明出处
最后编辑时间为: September 15th , 2017 at 05:17 am
本文由 99ios 创作,转载请注明出处