美文网首页与时俱进的IT
UI(二十九)网络环境判断

UI(二十九)网络环境判断

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-30 18:01 被阅读0次

四、网络环境判断

 1、Reachability 类名

 (1)导入Reachability类名

 (2)初始化Reachability对象,HostName 尽量用一个比较稳定的网络

 (3)添加观察者,接收网络环境发生改变的通知

 (4)开始监测

 (5)在通知中得到Reachability的对象

 2、AFNetWorking中AFNetworkReachabilityManager

 (1)导入类库

 (2)创建检测对象 类方法sharedManager

 (3)开始监测

 (4)通过检测对象 获得检测结果 回调方法(setReachabilityStatusChangeBlock:)

#import "AppDelegate.h"

//1、导入类名

#import "Reachability.h"

#pragma mark---AFNetWorkingReachabilityManager--

//一、导入类库

#import "AFNetworking.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

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

 //2、创建Reachability对象

 //HostName 尽量用一个比较稳定的网站

 Reachability *reachability = [Reachability reachabilityWithHostName:@"www.baidu.com"];

 //3、添加观察者 接收网络环境变化的通知

 //kReachabilityChangedNotification 通知的名字

 //NetworkStatus 网络环境的枚举

 //-(NSString*)currentReachabilityString网络环境的字符串

    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(change:) name:kReachabilityChangedNotificationobject:nil];

 //4、开始监测

 //-(BOOL)startNotifier; 开始通知监测

 //-(void)stopNotifier; 结束通知监测

[reachability startNotifier];

#pragma mark---AFNetWorkingReachabilityManager---

 //二、初始化AFNetWorkingReachabilityManager对象

 AFNetworkReachabilityManager*reachabilityManager = [AFNetworkReachabilityManager sharedManager];

 //三、开始监测

 //- (void)startMonitoring;开始监测

 //- (void)stopMonitoring;停止监测

[reachabilityManager startMonitoring];

 //四、获得监测的网络状态

[reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatusstatus) {

 NSString *result = @"";

 switch (status) {

 case AFNetworkReachabilityStatusUnknown: {

result = @"未知网络";

 break;

            }

 case AFNetworkReachabilityStatusNotReachable: {

result = @"无网络";

 break;

            }

 case AFNetworkReachabilityStatusReachableViaWWAN: {

result = @"蜂窝网络";

 break;

            }

 case AFNetworkReachabilityStatusReachableViaWiFi: {

result = @"无线网";

 break;

            }

 default: {

 break;

            }

        }

 NSLog(@"%@",result);

    }];

 return YES;

}

- (void)change:(NSNotification *)not{

 //not.object 得到Reachability对象

 //5、得到通知中的Reachability对象 获得网络状态

 Reachability *reachability = not.object;

 NSLog(@"%@",[reachability currentReachabilityString]);

 NSString *status = @"";

 switch(reachability.currentReachabilityStatus) {

 case NotReachable:

status = @"无发链接网络";

 break;

 case ReachableViaWWAN:

status = @"移动窝蜂网络WWAN";

 break;

 case ReachableViaWiFi:

status = @"无线网WIFi";

 break;

 default:

 break;

    }

 NSLog(@"%@",status);

}

相关文章

网友评论

    本文标题:UI(二十九)网络环境判断

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