iOS開(kāi)發(fā):獲取設(shè)備網(wǎng)絡(luò)狀態(tài)

在開(kāi)發(fā)iOS應(yīng)用或者游戲時(shí),我們可以通過(guò)Reachability庫(kù)進(jìn)行iOS設(shè)備的網(wǎng)絡(luò)監(jiān)測(cè)。
首先,Reachability官方下載地址在這里。

1. Reachability簡(jiǎn)介

Reachablity 是一個(gè)iOS下檢測(cè),iOS設(shè)備網(wǎng)絡(luò)環(huán)境用的庫(kù)。

  • 監(jiān)視設(shè)備網(wǎng)絡(luò)是否可用。
  • 監(jiān)視當(dāng)前網(wǎng)絡(luò)的連接方式。
  • 監(jiān)測(cè)網(wǎng)絡(luò)連接方式的變更。

簡(jiǎn)單點(diǎn)說(shuō),Reachablity可以監(jiān)測(cè)當(dāng)前設(shè)備是未聯(lián)網(wǎng)狀態(tài)還是連接2g,3g,4g或wifi狀態(tài),并且當(dāng)網(wǎng)絡(luò)連接類型改變的時(shí)候可以實(shí)時(shí)監(jiān)測(cè)通知。

2. Reachability使用

把下載的Reachability.h和Reachability.m文件加到項(xiàng)目中,在入口文件處包含Reachability頭文件并加入下列代碼:
(例如我使用cocos2d-x開(kāi)發(fā),就在AppController.mm文件中處理)

// 監(jiān)測(cè)網(wǎng)絡(luò)情況
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(reachabilityChanged:)
                                             name: kReachabilityChangedNotification
                                           object: nil];
Reachability* hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"];
[hostReach startNotifier];

檢測(cè)某一特定站點(diǎn)的接續(xù)狀況,這里以百度為例,reachabilityChanged方法是當(dāng)網(wǎng)絡(luò)環(huán)境改變時(shí)回調(diào)的函數(shù),實(shí)現(xiàn)類似如下:

//網(wǎng)絡(luò)環(huán)境改變回調(diào)函數(shù)
- (void)reachabilityChanged:(NSNotification *)note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    NetworkStatus status = [curReach currentReachabilityStatus];
    
    switch (status)
    {
            
        case NotReachable:
            NSLog(@"====當(dāng)前網(wǎng)絡(luò)狀態(tài)不可達(dá)=======");
            //其他處理
            break;
            
        case ReachableViaWiFi:
            NSLog(@"====當(dāng)前網(wǎng)絡(luò)狀態(tài)為Wifi=======");
            //其他處理
            break;
            
        case kReachableVia2G:
            NSLog(@"====當(dāng)前網(wǎng)絡(luò)狀態(tài)為2G=======");
            //其他處理
            break;
            
        case kReachableVia3G:
            NSLog(@"====當(dāng)前網(wǎng)絡(luò)狀態(tài)為3G=======");
            //其他處理
            break;
            
        case kReachableVia4G:
            NSLog(@"====當(dāng)前網(wǎng)絡(luò)狀態(tài)為4G=======");
            //其他處理
            break;
            
        case ReachableViaWWAN:
            NSLog(@"====當(dāng)前網(wǎng)絡(luò)狀態(tài)為WWAN=======");
            //其他處理
            break;
        
        default:
            NSLog(@"你是外星來(lái)的嗎?");
            //其他處理
            break;
    }
}

根據(jù)status判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)變成哪種方式,在“//其他處理”處可加入其他處理代碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,694評(píng)論 4 61
  • Swift版本點(diǎn)擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 26,290評(píng)論 7 249
  • 最近的事有點(diǎn)多,總想理清楚,又總是亂成一團(tuán)。最近不想的事太多了,還是得去面對(duì)。 感覺(jué)自己站在一個(gè)懸崖邊,想好好得走...
    暴走猴3閱讀 222評(píng)論 0 1
  • 風(fēng)水的核心就是有沒(méi)有宜居的溫度,即有沒(méi)有充足的陽(yáng)光,豐沛的水源及抵御寒風(fēng)的高山,小的時(shí)候經(jīng)常聽(tīng)父輩說(shuō)又到了...
    三鉉閱讀 2,069評(píng)論 0 0
  • 也不知道蘭是怎么回到家的,她情緒低落,萎靡不振,從此與酒結(jié)下了不解之緣,每日飯前必喝得醉醺醺的,甚至發(fā)酒瘋,語(yǔ)無(wú)倫...
    況元閱讀 349評(píng)論 0 2

友情鏈接更多精彩內(nèi)容