IOS-网络(监听网络状态)

摘要:
1//2//BWNetWorkTool.h3//IOS_0131_检测网络状态4//5//Createdbymacon16/1/31.6//Copyright2016年博文科技.Allrightsreserved.7//89#import1011@interfaceBWNetWorkTool:NSObject12///是否是WiFi13+(BOOL
1 //
2 //BWNetWorkTool.h
3 //IOS_0131_检测网络状态
4 //
5 //Created by ma c on 16/1/31.
6 //Copyright © 2016年 博文科技. All rights reserved.
7 //
8 
9 #import <Foundation/Foundation.h>
10 
11 @interfaceBWNetWorkTool : NSObject
12 ///是否是WiFi
13 +(BOOL)isEnableWiFi;
14 ///是否是3G
15 +(BOOL)isEnable3G;
16 
17 @end
18 
19 //
20 //BWNetWorkTool.m
21 //IOS_0131_检测网络状态
22 //
23 //Created by ma c on 16/1/31.
24 //Copyright © 2016年 博文科技. All rights reserved.
25 //
26 
27 #import "BWNetWorkTool.h"
28 #import "Reachability.h"
29 
30 @implementationBWNetWorkTool
31 
32 //是否是WiFi
33 +(BOOL)isEnableWiFi
34 {
35     return [[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] !=NotReachable;
36 }
37 //是否是3G
38 +(BOOL)isEnable3G
39 {
40     return [[Reachability reachabilityForInternetConnection] currentReachabilityStatus] !=NotReachable;
41 }
42 
43 
44 @end
1 //
2 //ViewController.m
3 //IOS_0131_检测网络状态
4 //
5 //Created by ma c on 16/1/31.
6 //Copyright © 2016年 博文科技. All rights reserved.
7 //
8 
9 #import "ViewController.h"
10 #import "Reachability.h"
11 #import "BWNetWorkTool.h"
12 
13 @interfaceViewController ()
14 
15 @property (nonatomic, strong) Reachability *reachability;
16 
17 @end
18 
19 @implementationViewController
20 /*
21 检测网络状态
22 1.在网络应用中,需要对用户设备的网络状态进行实时监控,目的:
23 a.让用户了解自己的网络状态,防止一些误会(怪应用无能)
24 b.根据用户的网络状态进行智能处理,节省用户流量,提高用户体验
25 WIFI/3G/4G网络:自动下载高清图片
26 低速网络:只能下载缩略图
27 没有网络:智能显示离线的缓存数据
28 c.苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态
29      https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip
30  
31 2.Reachability的使用步骤
32 1>添加框架SystemConfiguration.framework
33 2>添加源代码
34 3>包含头文件 - #import "Reachability.h"
35  
36 3.常见用法
37 1>是否是WiFi
38 + (BOOL)isEnableWiFi
39 {
40 return [[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] !=NotReachable;
41 }
42 2>是否是3G
43 + (BOOL)isEnable3G
44 {
45 return [[Reachability reachabilityForInternetConnection] currentReachabilityStatus] !=NotReachable;
46 }
47  */
48 
49 - (void)viewDidLoad {
50 [super viewDidLoad];
51     
52     //监听网络状态发生改变通知
53     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
54     
55     //获得Reachability对象
56     self.reachability =[Reachability reachabilityForInternetConnection];
57     
58     //开始监控
59 [self.reachability startNotifier];
60     
61 //    //获取Reachability对象
62 //Reachability *wifi = [Reachability reachabilityForLocalWiFi];
63 //    //获取Reachability对象的当前网络状态
64 //NetworkStatus wifiStatus = wifi.currentReachabilityStatus;
65 //    
66 //if (wifiStatus !=NotReachable) {
67 //NSLog(@"wifi");
68 //}
69     
70 }
71 
72 - (void)networkStateChange
73 {
74     NSLog(@"网络状态改变了");
75 [self changeNetworkState];
76 }
77 
78 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
79 {
80 [self changeNetworkState];
81 }
82 
83 - (void)changeNetworkState
84 {
85     if([BWNetWorkTool isEnableWiFi]) {
86         NSLog(@"WiFi环境");
87     }else if([BWNetWorkTool isEnable3G]){
88         NSLog(@"手机自带网络");
89     }else{
90         NSLog(@"没有网络");
91 }
92 }
93 
94 - (void)dealloc
95 {
96 [self.reachability stopNotifier];
97 [[NSNotificationCenter defaultCenter] removeObserver:self];
98 }
99 
100 @end

免责声明:文章转载自《IOS-网络(监听网络状态)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇谈谈EF Core实现数据库迁移iOS Block全面分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CocoaPods安装使用及配置私有库

http://www.exiatian.com/cocoapods安装使用及配置私有库/ 从前端到obj-c有小半年了,文章又快有一年没有更新过了,前几天才把域名续费了3年,感叹第一个三年就这样过去了….所以决定不能再像以前那样懒了,每天坚持把自己的学习都记录下来然后有空的时候整理下发布到小站,于是有了obj-c的第一篇. 如何安装? 1.安装ruby环境...

iOS开发-关于网络状态的判断

  在判断网络状态这个问题上,苹果提供了一个叫Reachability的第三方库,但是这个库并不能真正的检测我们的网络状态,我也是在调试程序的时候发现的。详情可以阅读这个博客http://blog.csdn.net/openglnewbee/article/details/50705146   但是我并没有使用上面博客的方法,而是使用另外一种方法。   因...