iOS---网络状态判断

在日常使用的app中有很多都有根据网络状态设置相关操作的功能,比如网易可以设置只在wifi时加载图片、大部分音乐播放器都可以设置仅wifi联网。所以在一些app中监听网络状态是有一定的必要,一是可以防止与用户因为网络状态差而误会成程序问题二来也可以提高用户体验。

下面介绍两种方法:
1、苹果官方提供了一个叫Reachability的示例程序如下:
https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip

使用方法如下:
添加框架SystemConfiguration.framework


image.png

添加源代码

code.png
-(void)netStation
{
    //检测网络状态
    Reachability *wifi = [Reachability reachabilityForLocalWiFi];  

    // 2.检测手机是否能上网络(WIFI\3G\2.5G)
    Reachability *conn = [Reachability reachabilityForInternetConnection];

    // 3.判断网络状态
    if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi
        NSLog(@"有wifi");
    } else if ([conn currentReachabilityStatus] != NotReachable) { // 没有使用wifi, 使用手机自带网络进行上网
        NSLog(@"使用手机自带网络");
    } else { // 没有网络
    NSLog(@"没有网络");
}
// [wifi currentReachabilityStatus] != NotReachable
// [conn currentReachabilityStatus] != NotReachable
// 没有用WIFI, 只用了手机网络
// [wifi currentReachabilityStatus] == NotReachable
// [conn currentReachabilityStatus] != NotReachable
// 没有网络
// [wifi currentReachabilityStatus] == NotReachable
// [conn currentReachabilityStatus] == NotReachable





2、如使用AFNetWorking进行网络请求,其自带了监听网络状态的方法如下:

+(NSString*)NetWorkIsConnect
{
    //获得网络状态管理者
    AFNetworkReachabilityManager*manager = [[AFNetworkReachabilityManager alloc]init];
    // 2.设置网络状态改变后的处理
static NSString *tatusState;
    [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
    // 当网络状态改变了, 就会调用这个block
    switch (status) {
            case AFNetworkReachabilityStatusNotReachable:
            _tatusState = @"没有网络";
            break;
        case AFNetworkReachabilityStatusReachableViaWWAN:
            _tatusState = @"移动网络";
            break;
        case AFNetworkReachabilityStatusReachableViaWiFi:
            _tatusState = @"wifi网络";
            break;
        default:
            break;
    }
}];
// 3.开始监控
[manager startMonitoring];

return tatusState;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 大多数App都严重依赖于网络,一款用户体验良好的的app是必须要考虑网络状态变化的.iOS 开发一般使用Reach...
    MMOTE阅读 4,615评论 0 0
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,832评论 4 61
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,283评论 19 139
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,785评论 7 249
  • 文/庄园 可可喜欢看篮球比赛,不喜欢足球,唯一的理由是前者可以动手,而后者出"手"球是要犯规的。认识现任丈夫是五年...
    ZYH庄园阅读 3,265评论 0 2

友情链接更多精彩内容