千锋3g学院网络 ios开发 6月25号开...

iOS开发 - 检测网络状态(WIFI、2G/3G/4G)
检测网络状态
在网络应用中,需要对用户设备的网络状态进行实时监控,目的是
让用户了解自己的网络状态,防止一些误会(比如怪应用无能)
根据用户的网络状态进行智能处理,节省用户流量,提高用户体验
WIFI\3G网络:自动下载高清图片
低速网络:只下载缩略图
没有网络:只显示离线的缓存数据
苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态
/library/ios/samplecode/Reachability/Reachability.zip
Reachability的使用步骤
添加框架SystemConfiguration.framework
添加源代码
包含头文件
#import &Reachability.h&
抽取工具类
// 是否WIFI
+ (BOOL) IsEnableWIFI {
return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
+ (BOOL) IsEnable3G {
return ([[Reachability reachabilityForInternetConnectionen] currentReachabilityStatus] != NotReachable);
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
self.netReachability = [Reachability reachabilityForInternetConnection];
[self.netReachability startNotifier];
- (void)dealloc
[self.netReachability stopNotifier];
[[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil];
检测网络状态实例
NetWorkTool工具类
@interface NetworkTool : NSObject
+ (BOOL)isEnableWIFI;
+ (BOOL)isEnable3G;
#import &NetWorkTool.h&
#import &Reachability.h&
@implementation NetworkTool
// 是否WIFI
+ (BOOL)isEnableWIFI {
return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
+ (BOOL)isEnable3G {
return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable);
#import &ViewController.h&
#import &Reachability.h&
#import &NetworkTool.h&
@interface ViewController ()
@property (nonatomic, strong) Reachability *
@implementation ViewController
- (void)viewDidLoad
[super viewDidLoad];
// ***网络状态发生改变的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
// 获得Reachability对象
self.reachability = [Reachability reachabilityForInternetConnection];
// 开始监控网络
[self.reachability startNotifier];
- (void)dealloc
[self.reachability stopNotifier];
[[NSNotificationCenter defaultCenter] removeObserver:self];
- (void)networkStateChange
NSLog(@&网络状态改变了&);
[self checkNetworkState];
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
[self checkNetworkState];
#pragma mark - App应用程序网络类型改变就会调用
- (void)networkStateChange
if ([NetWorkTool isEnableWIFI]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@&温馨提示您& message:@&您现在网络环境为wifi!开始畅享吧!& delegate:self cancelButtonTitle:@&确定& otherButtonTitles:nil, nil];
[alert show];
} else if ([NetWorkTool isEnable3G]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@&温馨提示您&
message:@&您现在网络环境为3G/4G网络!& delegate:self cancelButtonTitle:@&确定& otherButtonTitles:nil, nil];
[alert show];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@&温馨提示您& message:@&您当前没有可连的网络或已经掉线!& delegate:self cancelButtonTitle:@&确定& otherButtonTitles:nil, nil];
[alert show];您所在位置: &
 &  & 
千锋3G学院Objective-C视频教程(附源码).doc1页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:128 &&
你可能关注的文档:
??????????
??????????
千锋3G学院-iOS开发视频教程-第11讲-UIPickerView代码 ..
千锋3G学院-Objective-C语言教程-第1讲-基本语法
千锋3G学院-Objective-C语言教程-第2讲-点语法
千锋3G学院-Objective-C语言教程-第3讲-内存管理1
千锋3G学院-Objective-C语言教程-第4讲-内存管理2
千锋3G学院-Objective-C语言教程-第5讲-内存管理3
千锋3G学院-Objective-C语言教程-第6讲-内存管理4
千锋3G学院-Objective-C语言教程-第7讲-协议
千锋3G学院-Objective-C语言教程-第8讲-协议代理设计模 ..
千锋3G学院-Objective-C语言教程-第9讲Category语法
千锋3G学院-Objective-C语言教程-第10讲-Blocks语法
千锋3G学院-Objective-C语言教程-全部源代码
千锋3G学院-iOS开发视频教程-第11讲-UIPickerView代码 ..
千锋3G学院-Objective-C语言教程-第1讲-基本语法
千锋3G学院-Objective-C语言教程-第2讲-点语法
千锋3G学院-Objective-C语言教程-第3讲-内存管理1
千锋3G学院-Objective-C语言教程-第4讲-内存管理2
千锋3G学院-Objective-C语言教程-第5讲-内存管理3
千锋3G学院-Objective-C语言教程-第6讲-内存管理4
千锋3G学院-Objective-C语言教程-第7讲-协议
千锋3G学院-Objective-C语言教程-第8讲-协议代理设计模 ..
千锋3G学院-Objective-C语言教程-第9讲Category语法
千锋3G学院-Objective-C语言教程-第10讲-Blocks语法
千锋3G学院-Objective-C语言教程-全部源代码
正在加载中,请稍后...

参考资料

 

随机推荐