美文网首页
监听网络状态

监听网络状态

作者: Coder007 | 来源:发表于2017-04-01 11:49 被阅读23次

监听网络状态

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

第一种方法:

  • 如果我们项目中使用的网络访问框架是AFNetworking(这也是日常开发中最常用的框架),那么我们可以使用:AFNetworkReachabilityManager来进行网络监听
  • AFNetworkReachabilityManager内部也是使用了苹果的Reachability
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
     NSLog(@"当前网络状态--%zd",status);
 }];
 // 开始监听
[manager startMonitoring];

//manager.networkReachabilityStatus:获取当前网络状态

typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
    AFNetworkReachabilityStatusUnknown          = -1,// 未知网络
    AFNetworkReachabilityStatusNotReachable     = 0,// 没有网络
    AFNetworkReachabilityStatusReachableViaWWAN = 1,// 蜂窝网络 
    AFNetworkReachabilityStatusReachableViaWiFi = 2,// WiFi
};

第二种方法

  • 使用苹果的Reachability
  • 详细介绍苹果的示例代码中有
  • Reachability示例代码地址
  • 现在Reachability最新版本:5.0 支持iOS8.0及以上
// 监听通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];

// 开始监听网络
self.reachability = [Reachability reachabilityForInternetConnection];
[self.reachability startNotifier];


- (void)getNetworkStatus
{
    // 获取当前网络状态
    self.reachability.currentReachabilityStatus
}

typedef enum : NSInteger {
    NotReachable = 0,       // 无网络
    ReachableViaWiFi,       // WiFi
    ReachableViaWWAN        // 蜂窝网络
} NetworkStatus;

- (void)dealloc
{
    // 移除监听
    [[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil];
    [self.reachability stopNotifier];
    self.reachability = nil;
}

相关文章

  • 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/uwriottx.html