IOS開發—網絡監聽

cd33 9年前發布 | 12K 次閱讀 Objective-C IOS

網絡監聽用到的類為Reachability.h,這個Xcode項目里面是不自帶的,需要從github上面下載,在使用的時候記著導入SystemConfiguration.framework。

首先是在AppDelegate.m中設置網絡監聽

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

初始化:

_reachability = [Reachability reachabilityForInternetConnection];
[_reachability startNotifier];
[self updateInterfaceWithReachability:_reachability];
實現兩個方法:
- (void) reachabilityChanged: (NSNotification* )note;//網絡連接改變
- (void) updateInterfaceWithReachability: (Reachability*) curReach;//處理連接改變后的情況
下面是方法的具體實現,可根據情況自行改變:
// 連接改變
- (void) reachabilityChanged: (NSNotification* )note {
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    [self updateInterfaceWithReachability: curReach];
}

//處理連接改變后的情況
- (void) updateInterfaceWithReachability: (Reachability*) curReach {
    //對連接改變做出響應的處理動作。
    NetworkStatus status = [curReach currentReachabilityStatus];

    if (status == NotReachable) {
        _isReachable = NO;
        //沒有連接到網絡就彈出提實況
        UIAlertView *netAlert = [[UIAlertView alloc] initWithTitle:@"蜂窩移動數據已關閉" message:@"啟用蜂窩移動數據或無線局域網來訪問數據" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
        [netAlert show];
    } else {
        _isReachable = YES;
    }
}
 本文由用戶 cd33 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!