iOS開發(fā)—網(wǎng)絡(luò)監(jiān)聽


網(wǎng)絡(luò)監(jiān)聽用到的類為Reachability.h,這個(gè)Xcode項(xiàng)目里面是不自帶的,需要從github上面下載,在使用的時(shí)候記著導(dǎo)入SystemConfiguration.framework

首先是在AppDelegate.m中設(shè)置網(wǎng)絡(luò)監(jiān)聽

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];

初始化:

_reachability = [Reachability reachabilityForInternetConnection];
[_reachability startNotifier];
[self updateInterfaceWithReachability:_reachability];

實(shí)現(xiàn)兩個(gè)方法:

- (void) reachabilityChanged: (NSNotification* )note;//網(wǎng)絡(luò)連接改變
- (void) updateInterfaceWithReachability: (Reachability*) curReach;//處理連接改變后的情況

下面是方法的具體實(shí)現(xiàn),可根據(jù)情況自行改變:

// 連接改變
- (void) reachabilityChanged: (NSNotification* )note {
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    [self updateInterfaceWithReachability: curReach];
}
 
//處理連接改變后的情況
- (void) updateInterfaceWithReachability: (Reachability*) curReach {
    //對(duì)連接改變做出響應(yīng)的處理動(dòng)作。
    NetworkStatus status = [curReach currentReachabilityStatus];
     
    if (status == NotReachable) {
        _isReachable = NO;
        //沒有連接到網(wǎng)絡(luò)就彈出提實(shí)況
        UIAlertView *netAlert = [[UIAlertView alloc] initWithTitle:@"蜂窩移動(dòng)數(shù)據(jù)已關(guān)閉" message:@"啟用蜂窩移動(dòng)數(shù)據(jù)或無線局域網(wǎng)來訪問數(shù)據(jù)" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
        [netAlert show];
    } else {
        _isReachable = YES;
    }
}
最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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