reachability
在 reachability標頭檔案中我們可以看到無網路,wifi和蜂窩網三個網路狀態的列舉值,如下:
typedef
enum
: nsinteger networkstatus;
(1)獲取網路狀態:
在ios 7之前,當使用者網路為蜂窩網路時,是沒法判斷3g、4g等網路型別的,ios 7 後是可以判斷的
-
(nsstring *
)internetstatus
return net;
}
(2)當使用者為手機自帶網路時,判斷具體網路型別
這時可以使用系統自帶的api來判斷是2g、3g還是4g,這就要使用到cttelephonynetworkinfo這類,記得在工程新增coretelephony.framework,並匯入標頭檔案
-
(nsstring *
)getnettype
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologyedge"])
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologywcdma"])
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologyhsdpa"])
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologyhsupa"])
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologycdma1x"])
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologycdmaevdorev0"])
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologycdmaevdoreva"])
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologycdmaevdorevb"])
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologyehrpd"])
elseif(
[currentstatus isequaltostring:
@"ctradioaccesstechnologylte"])
}
用此方法判斷的蜂窩網路型別有如下型別:
ctradioaccesstechnologygprs //介於2g和3g之間,也叫2.5g ,過度技術
ctradioaccesstechnologyedge //edge為gprs到第三代移動通訊的過渡,edge俗稱2.75g
ctradioaccesstechnologywcdma
ctradioaccesstechnologyhsdpa //亦稱為3.5g(3?g)
ctradioaccesstechnologyhsupa //3g到4g的過度技術
ctradioaccesstechnologycdma1x //3g
ctradioaccesstechnologycdmaevdorev0 //3g標準
ctradioaccesstechnologycdmaevdoreva
ctradioaccesstechnologycdmaevdorevb
ctradioaccesstechnologyehrpd //電信使用的一種3g到4g的演進技術, 3.75g
ctradioaccesstechnologylte //接近4g
通過系統statusbar判斷
這種方法在iphone x 上可能引起奔潰,可能是蘋果修改了statusbar的keypath,所以拿到的東西為nil,導致崩潰
//獲取當前網路狀態 (iphone x 上可能引發崩潰)
+(nsstring *
)networkingstatesfromstatebar
}
nsstring *statestring =
@"wifi"
;switch
(type)
return statestring;
}
通過afnetworking
#pragma mark - ------------- 監測網路狀態 --------------(
void
)monitornetworking
break
;case2:
break
;default
:break;}
if(status == afnetworkreachabilitystatusreachableviawwan || status == afnetworkreachabilitystatusreachableviawifi)
else}]
;}
ios 快速判斷當前網路狀態 三種方法
一 利用afn框架 1.建立網路狀態監測管理者 afnetworkreachabilitymanager manager afnetworkreachabilitymanager sharedmanager 2.監聽改變 manager setreachabilitystatuschangebloc...
ios 快速判斷當前網路狀態 三種方法
1 利用afn框架 1.建立網路狀態監測管理者 afnetworkreachabilitymanager manager afnetworkreachabilitymanager sharedmanager 2.監聽改變 manager setreachabilitystatuschangebloc...
iOS 判斷當前網路狀態
1.如果只判斷當前是否是無網的狀態 if reachability reachabilityforlocalwifi currentreachabilitystatus notreachable reachability reachabilityforinternetconnection curre...