1.Reachability簡介
Reachability是一個在iOS系統環境下檢測iOS裝置目前的網絡環境的庫。它的主要功能是監測三種網絡環境:2G/3G/4G、WiFi網絡、無網絡。在應用的運作狀态下,實時監測網絡連接配接方式的變更,及時給出通知。
2.Reachability的使用
首先需要在GitHub上下載下傳Reachability的壓縮包,解壓後将Reachability.h和Reachability.m檔案拖入工程當中,在使用的地方引入頭檔案即可。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmLEFDM4QDNDFDRERENtQkRwkTLzgDN00yQDdDOtczM5gzNGlDNvwVMw8CX2EDMy8CXzRWYvxGc19CX05WZ052bj1Cc39CXt92Yu4GZkV3bsNmLix2ZuAjeuETbvNmL1Yzdvh3Nvw1LcpDc0RHaiojIsJye.jpg)
直接擷取目前網絡環境:
- //可以使用多種方式初始化
- Reachability *reach = [Reachability reachabilityWithHostName:@"www.hcios.com"];
- //判斷目前的網絡狀态
- switch ([reach currentReachabilityStatus]) {
- case ReachableViaWWAN:
- NSLog(@"正在使用移動資料網絡");
- break;
- case ReachableViaWiFi:
- NSLog(@"正在使用WiFi");
- break;
- default:
- NSLog(@"無網絡");
- break;
- }
根據currentReachabilityStatus方法擷取目前的網絡環境,ReachableViaWWAN表示移動資料網絡,ReachableViaWiFi表示WiFi網絡,NotReachable表示沒有接入網絡。
通知的方式擷取目前網絡環境:
- //可以使用多種方式初始化
- Reachability *reach = [Reachability reachabilityWithHostName:@"www.hcios.com"];
- //通知中心注冊通知
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
- //Reachability執行個體調用startNotifier方法啟動網絡狀态監測
- [reach startNotifier];
- //收到通知調用的方法
- - (void)reachabilityChanged:(NSNotification *)notification {
- Reachability *reach = [notification object];
- //判斷網絡狀态
- if (![reach isReachable]) {
- NSLog(@"網絡連接配接不可用");
- } else {
- if ([reach currentReachabilityStatus] == ReachableViaWiFi) {
- NSLog(@"正在使用WiFi");
- } else if ([reach currentReachabilityStatus] == ReachableViaWWAN) {
- NSLog(@"正在使用移動資料");
- }
- }
- }
通過通知的方式使用Reachability是在程式中經常使用的,Reachability可以在使用者的網絡狀态發生改變時,及時給出通知提醒,防止資料流量的快速流失,在實際的項目應用中是十分常見的。