日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

詳解IOS判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)的三種方法

瀏覽:155日期:2022-09-16 17:28:53

在項目中,為了好的用戶體驗,有些場景必須線判斷網(wǎng)絡(luò)狀態(tài),然后才能決定該干嘛。比如視頻播放,需要線判斷是Wifi還是4G,Wifi直接播放,4G先提示用戶。獲取網(wǎng)絡(luò)狀態(tài)的方法大概有三種:

1. Reachability

這是蘋果的官方演示demo中使用到的方法,我們可以到蘋果官方文檔里下載Demo(點擊左上角Download Sample Code 即可下載),然后把Demo里的Reachability.h和.m考到自己項目中,并在Build Phases 的 Link Binary 添加SystemConfiguration.framework框架,然后在需要使用的地方導(dǎo)入Reachability頭文件

在 Reachability頭文件中我們可以看到無網(wǎng)絡(luò),wifi和蜂窩網(wǎng)三個網(wǎng)絡(luò)狀態(tài)的枚舉值,如下:

typedef enum : NSInteger { NotReachable = 0, ReachableViaWiFi, ReachableViaWWAN} NetworkStatus;(1)獲取網(wǎng)絡(luò)狀態(tài)

在iOS 7之前,當(dāng)用戶網(wǎng)絡(luò)為蜂窩網(wǎng)絡(luò)時,是沒法判斷3G、4G等網(wǎng)絡(luò)類型的,iOS 7 后是可以判斷的

(NSString *)internetStatus { Reachability *reachability = [Reachability reachabilityWithHostName:@'www.apple.com']; NetworkStatus internetStatus = [reachability currentReachabilityStatus]; NSString *net = @'WIFI'; switch (internetStatus) {case ReachableViaWiFi: net = @'WIFI'; break;case ReachableViaWWAN: net = @'蜂窩數(shù)據(jù)'; //net = [self getNetType ]; //判斷具體類型 break;case NotReachable: net = @'當(dāng)前無網(wǎng)路連接';default: break; } return net;}(2)當(dāng)用戶為手機自帶網(wǎng)絡(luò)時,判斷具體網(wǎng)絡(luò)類型

這時可以使用系統(tǒng)自帶的API來判斷是2G、3G還是4G,這就要使用到CTTelephonyNetworkInfo這類,記得在工程添加CoreTelephony.framework,并導(dǎo)入頭文件

- (NSString *)getNetType{ CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init]; NSString *currentStatus = info.currentRadioAccessTechnology; if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyGPRS']) {netconnType = @'GPRS'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyEdge']) {netconnType = @'2.75G EDGE'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyWCDMA']){netconnType = @'3G'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyHSDPA']){netconnType = @'3.5G HSDPA'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyHSUPA']){netconnType = @'3.5G HSUPA'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyCDMA1x']){netconnType = @'2G'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyCDMAEVDORev0']){netconnType = @'3G'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyCDMAEVDORevA']){netconnType = @'3G'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyCDMAEVDORevB']){netconnType = @'3G'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyeHRPD']){netconnType = @'HRPD'; }else if ([currentStatus isEqualToString:@'CTRadioAccessTechnologyLTE']){netconnType = @'4G'; }}

用此方法判斷的蜂窩網(wǎng)絡(luò)類型有如下類型:

CTRadioAccessTechnologyGPRS         //介于2G和3G之間,也叫2.5G ,過度技術(shù)

CTRadioAccessTechnologyEdge         //EDGE為GPRS到第三代移動通信的過渡,EDGE俗稱2.75G

CTRadioAccessTechnologyWCDMA

CTRadioAccessTechnologyHSDPA            //亦稱為3.5G(3?G)

CTRadioAccessTechnologyHSUPA            //3G到4G的過度技術(shù)

CTRadioAccessTechnologyCDMA1x       //3G

CTRadioAccessTechnologyCDMAEVDORev0    //3G標(biāo)準(zhǔn)

CTRadioAccessTechnologyCDMAEVDORevA

CTRadioAccessTechnologyCDMAEVDORevB

CTRadioAccessTechnologyeHRPD        //電信使用的一種3G到4G的演進技術(shù), 3.75G

CTRadioAccessTechnologyLTE          //接近4G

2. 通過系統(tǒng)statusBar判斷

這種方法在iPhone X 上可能引起奔潰,可能是蘋果修改了statusBar的keyPath,所以拿到的東西為nil,導(dǎo)致崩潰//獲取當(dāng)前網(wǎng)絡(luò)狀態(tài)  (iPhone X 上可能引發(fā)崩潰)

+ (NSString *)networkingStatesFromStatebar { // 狀態(tài)欄是由當(dāng)前app控制的,首先獲取當(dāng)前app UIApplication *app = [UIApplication sharedApplication]; //iphone X 會在這里崩潰 NSArray *children = [[[app valueForKeyPath:@'statusBar'] valueForKeyPath:@'foregroundView'] subviews]; int type = 0; for (id child in children) {if ([child isKindOfClass:[NSClassFromString(@'UIStatusBarDataNetworkItemView') class]]) { type = [[child valueForKeyPath:@'dataNetworkType'] intValue];} } NSString *stateString = @'wifi'; switch (type) {case 0: stateString = @'notReachable'; break;case 1: stateString = @'2G'; break;case 2: stateString = @'3G'; break;case 3: stateString = @'4G'; break;case 4: stateString = @'LTE'; break;case 5: stateString = @'wifi'; break;default: break; } return stateString;}3. 通過AFNetworking

此方法可以寫在AppDelegate中,每當(dāng)網(wǎng)絡(luò)狀態(tài)發(fā)生變化時,就可以發(fā)通知,實時監(jiān)測網(wǎng)絡(luò)變化,然后做相應(yīng)的處理

#pragma mark - ------------- 監(jiān)測網(wǎng)絡(luò)狀態(tài) -------------- (void)monitorNetworking{ [[AFNetworkReachabilityManager sharedManager] startMonitoring]; [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {switch (status) { case -1:NSLog(@'未知網(wǎng)絡(luò)');break; case 0:NSLog(@'網(wǎng)絡(luò)不可達');break; case 1:{NSLog(@'GPRS網(wǎng)絡(luò)');//發(fā)通知,帶頭搞事[[NSNotificationCenter defaultCenter] postNotificationName:@'monitorNetworking' object:@'1' userInfo:nil];} break; case 2:{NSLog(@'wifi網(wǎng)絡(luò)');//發(fā)通知,搞事情[[NSNotificationCenter defaultCenter] postNotificationName:@'monitorNetworking' object:@'2' userInfo:nil];}break; default:break;}if (status == AFNetworkReachabilityStatusReachableViaWWAN || status == AFNetworkReachabilityStatusReachableViaWiFi) { NSLog(@'有網(wǎng)');}else{ NSLog(@'沒網(wǎng)');} }];}

以上就是詳解IOS判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)的三種方法的詳細內(nèi)容,更多關(guān)于IOS判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: IOS
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本不卡一二三区黄网| 久久精品青草| 激情综合自拍| 日韩欧美一区二区三区免费观看| 欧美国产极品| 美女久久久精品| a日韩av网址| 国产精品99一区二区| 99在线精品免费视频九九视| 高清不卡一区| 视频一区视频二区中文| 好看的av在线不卡观看| 天堂日韩电影| 欧美国产亚洲精品| 超碰在线99| 国产精品久久观看| 亚洲午夜黄色| 国产美女精品| 欧美日韩一区二区三区不卡视频| 麻豆国产精品777777在线| 欧美激情另类| 麻豆亚洲精品| 欧美aa在线视频| 日韩精品水蜜桃| 综合一区在线| 97视频热人人精品免费| 久久夜色精品| 久久中文欧美| 福利在线免费视频| 高清一区二区三区av| 亚洲激情二区| 亚洲精品黄色| 国产精品videossex久久发布 | 欧美日韩91| 日本在线高清| 亚洲欧洲美洲国产香蕉| 国产三级精品三级在线观看国产| 综合日韩av| 蜜臀av一区二区三区| 国产成人调教视频在线观看| 麻豆久久精品| 国产成人免费| 亚洲人成毛片在线播放女女| 久久精品午夜| 综合干狼人综合首页| 水蜜桃久久夜色精品一区| 久久aⅴ国产紧身牛仔裤| 精品三区视频| 免费亚洲婷婷| 99久久婷婷| 亚洲v天堂v手机在线| 日韩高清不卡在线| 日韩精品首页| 久久一区视频| 日韩av网站在线免费观看| 婷婷精品视频| 激情国产在线| 国产精品中文| 免费不卡在线视频| 久久久久中文| 久久精品国产一区二区| 亚洲人亚洲人色久| 亚洲天堂免费电影| 免费观看亚洲天堂| 欧美二区视频| 久久久久久网| 日本a级不卡| 免费毛片在线不卡| 国产精品久久乐| 亚洲精品系列| 亚洲夜间福利| 国产一区二区三区黄网站| 日本成人中文字幕在线视频| 麻豆久久一区| 日韩中文av| 奶水喷射视频一区| 伊人成人在线视频| 不卡av一区二区| 免费久久精品| 欧美~级网站不卡| 夜鲁夜鲁夜鲁视频在线播放| 欧美一级网站| 日韩高清在线一区| 亚洲乱码一区| 蜜臀久久99精品久久久久宅男| 一区二区视频欧美| 在线视频精品| 鲁大师成人一区二区三区| 黄色亚洲精品| 在线亚洲精品| 蜜臀av在线播放一区二区三区| 1024精品久久久久久久久| 999国产精品视频| 丝袜美腿诱惑一区二区三区| 日韩免费看片| 久久一区二区三区电影| 99热国内精品| 国产99久久| 激情综合网址| 日韩专区一卡二卡| 日韩av午夜在线观看| 久久av影视| 国产不卡精品| 99精品小视频| 樱桃成人精品视频在线播放| 亚洲一区日本| 日本不卡一区二区三区| 欧美在线看片| 久久免费福利| 91精品综合| 亚洲综合精品| 亚洲欧美在线专区| 国产精品一区二区三区四区在线观看 | 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 日韩欧美在线中字| 亚洲欧美综合| 日本不卡一二三区黄网| 久久99蜜桃| 精品久久中文| 欧美jjzz| 日韩精品高清不卡| 麻豆国产精品777777在线| 99久久婷婷| 日日夜夜免费精品| 日本一二区不卡| 在线亚洲成人| 国产毛片精品| 一区二区三区四区在线看| 亚洲久久视频| 国产精品啊v在线| 日韩av免费| 亚洲欧美日本国产| 国产精品毛片久久| 蜜桃成人av| 日韩欧美久久| 水蜜桃久久夜色精品一区| 中国女人久久久| 久久久久伊人| 国产色综合网| 欧美黑人做爰爽爽爽| 黄色欧美日韩| 精品视频高潮| 美女精品网站| 亚洲综合电影| 综合一区在线| 波多视频一区| 69堂免费精品视频在线播放| 电影亚洲精品噜噜在线观看| 欧美成人a交片免费看| 中文字幕免费一区二区| 久久uomeier| 91精品美女| 国产99精品| 国产va免费精品观看精品视频| 在线视频精品| 成人高清一区| 日韩动漫一区| 99国产精品免费视频观看| 国产九九精品| 蜜臀av一区二区在线免费观看| 欧美一级鲁丝片| 日本va欧美va精品发布| japanese国产精品| 日韩欧美三区| 伊人影院久久| 精品免费av在线| 国产一区二区三区四区二区| 日本色综合中文字幕| 91精品国产自产在线观看永久∴ | 丝袜亚洲精品中文字幕一区| 蜜桃精品在线| 你懂的亚洲视频| 日韩精品一区二区三区中文在线| 伊人影院久久| 电影天堂国产精品| 久久久国产精品入口麻豆| 欧美在线综合| 欧美日韩国产综合网| 亚洲h色精品| 国产91欧美| 久久久亚洲欧洲日产| 国产精品一区二区三区四区在线观看| 亚洲久久视频| 99视频一区| 亚洲精品国产偷自在线观看| 在线人成日本视频| 捆绑调教美女网站视频一区| 亚洲2区在线| 亚洲天堂av资源在线观看| 日韩午夜免费| aa国产精品| 成人污污视频| 精品一区二区三区亚洲| 国产日韩欧美三区| 欧美亚洲福利| 亚洲一区二区小说| 综合一区av| 日韩一区二区三区在线看| 亚洲精品福利| 三级在线观看一区二区|