IOS-利用AFNetworking監聽網絡狀態


  • 網絡環境檢測:檢測用戶當前所處的網絡狀態
  • 效果圖

    • 1.當蜂窩和wifi同時關閉時候 
      這里寫圖片描述

    • 顯示為不可達(AFNetworkReachabilityStatusNotReachable)狀態

    • 這里寫圖片描述
    • 2.打開蜂窩移動數據,關閉wifi 
      這里寫圖片描述
    • 顯示為wan網絡 
      這里寫圖片描述
    • 3.打開wifi,關閉蜂窩移動數據 
      這里寫圖片描述
    • 顯示為wifi網絡(AFNetworkReachabilityStatusReachableViaWiFi) 
      這里寫圖片描述
    • 4.同時打開wifi和蜂窩移動數據時候 
      這里寫圖片描述
    • 顯示為wifi網絡,從這點來看,顯然是不坑的呀 
      這里寫圖片描述

步驟

  • 1.創建網絡監聽者管理者對象
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
  • 2.設置監聽 
    • 網絡狀態
    //顯然是枚舉值 typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { AFNetworkReachabilityStatusUnknown = -1,//未識別的網絡 AFNetworkReachabilityStatusNotReachable = 0,//不可達的網絡 AFNetworkReachabilityStatusReachableViaWWAN = 1,//2G,3G,4G... AFNetworkReachabilityStatusReachableViaWiFi = 2,//wifi網絡

-設置網絡監聽

[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        switch (status) { case AFNetworkReachabilityStatusUnknown: NSLog(@"未識別的網絡"); break; case AFNetworkReachabilityStatusNotReachable: NSLog(@"不可達的網絡(未連接)"); break; case AFNetworkReachabilityStatusReachableViaWWAN: NSLog(@"2G,3G,4G...的網絡"); break; case AFNetworkReachabilityStatusReachableViaWiFi: NSLog(@"wifi的網絡"); break; default: break; } }]; 
  • 3.開始監聽
[manager startMonitoring];

代碼

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { //創建網絡監聽管理者對象 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; /* typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { AFNetworkReachabilityStatusUnknown = -1,//未識別的網絡 AFNetworkReachabilityStatusNotReachable = 0,//不可達的網絡(未連接) AFNetworkReachabilityStatusReachableViaWWAN = 1,//2G,3G,4G... AFNetworkReachabilityStatusReachableViaWiFi = 2,//wifi網絡 }; */ //設置監聽 [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case AFNetworkReachabilityStatusUnknown: NSLog(@"未識別的網絡"); break; case AFNetworkReachabilityStatusNotReachable: NSLog(@"不可達的網絡(未連接)"); break; case AFNetworkReachabilityStatusReachableViaWWAN: NSLog(@"2G,3G,4G...的網絡"); break; case AFNetworkReachabilityStatusReachableViaWiFi: NSLog(@"wifi的網絡"); break; default: break; } }]; //開始監聽 [manager startMonitoring]; }
相關鏈接:
IOS-利用AFNetworking監聽網絡狀態


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM