美文网首页
监听网络状态

监听网络状态

作者: Show撑腰 | 来源:发表于2015-11-27 19:13 被阅读0次

如果用系统的方法需要导入 Reachability.h Reachability.m

@interface ViewController ()
@property (nonatomic, strong) Reachability r1; /*< <#属性名#> */

@end

@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    /*
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

// nullable : 代表可以为nil
// __nonnull : 代表不能为nil
[manager GET:@"www.520it.com" parameters:nil success:^ void(NSURLSessionDataTask * task, id responseObjc) {
NSLog(@"成功的回调");
} failure:^ void(NSURLSessionDataTask * task, NSError * error) {
NSLog(@"失败的回调");
}];
*/

// 1.创建Reachability对象
self.r1 = [Reachability reachabilityForLocalWiFi];
// 2.给Reachability对象注册通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];
// 3.让Reachability对象发送网络改变的通知
[self.r1 startNotifier];

}

  • (void)dealloc
    {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    }

  • (void)getNetworkStatus
    {
    if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable) {
    NSLog(@"当前是蜂窝网");
    }else if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable)
    {
    NSLog(@"当前是蜂窝网");
    }else
    {
    NSLog(@"没有网络");
    }
    }

  • (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent )event
    {
    /

    // 1.创建Reachability对象
    // 创建一个蜂窝网的Reachability对象
    Reachability *r1 = [Reachability reachabilityForInternetConnection];
    // 2.获取当前对象的网络状态, 如果不是NotReachable值, 那么就代表当前的网络状态是我们创建的类型
    if(r1.currentReachabilityStatus != NotReachable)
    {
    NSLog(@"当前是蜂窝网");
    }
    // 创建一个局域网的Reachability对象
    Reachability *r2 = [Reachability reachabilityForLocalWiFi];
    if(r2.currentReachabilityStatus != NotReachable)
    {
    NSLog(@"当前是蜂窝网");
    }
    */

}

  • (void)afnReachability
    {
    // 1.创建网络监听管理者
    AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];

    // 2.设置网络变化的回调
    [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
    // 只要用户的网络发生改变, 就会调用这个block
    /*
    AFNetworkReachabilityStatusUnknown = 不能识别,
    AFNetworkReachabilityStatusNotReachable = 没有网络,
    AFNetworkReachabilityStatusReachableViaWWAN = 蜂窝网,
    AFNetworkReachabilityStatusReachableViaWiFi = 局域网,
    */
    switch (status) {
    case AFNetworkReachabilityStatusReachableViaWWAN:
    NSLog(@"蜂窝网");
    break;
    case AFNetworkReachabilityStatusReachableViaWiFi:
    NSLog(@"局域网");
    break;
    case AFNetworkReachabilityStatusNotReachable:
    NSLog(@"没有网络");
    break;
    default:
    NSLog(@"不能识别");
    break;
    }
    }];

    // 3.开始监听
    [manager startMonitoring];
    }

@end

相关文章

  • AFNetwork

    //设置网络监听 (void)monitorNetworking{//监听网络状态AFNetworkReachab...

  • 网络状态监听

  • 监听网络状态

    在项目中导入Reachability.h和Reachability.m文件,地址:Reachability Vie...

  • 监听网络状态

    监听网络状态 在日常开发中,我们经常会遇到这种情况,需要我们对手机的网络状态进行监听 比如:播放视频需要提示是4G...

  • 监听网络状态

    如果用系统的方法需要导入 Reachability.h Reachability.m @interface Vie...

  • 网络状态监听

    监听网络变化在开发中是经常用到的,例如我们断网有一些友好的提示,或者根据不同的网络更改一些加载策略,例如wifi看...

  • 网络状态监听

    一、在 AppDelegate.m 中创建监听单例,并监听发起通知 二、在任意地方接收状态通知,此非block通知...

  • 网络状态监听

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

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

  • BroadCast

    网络状态监听 开机广播监听 发送广播 发送标准广播

网友评论

      本文标题:监听网络状态

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