文章也會同步更新到我的部落格:
ppsheep.com
如果有在使用afnetworking朋友知道,在af裡只能區分當前網路是wifi網路還是蜂窩網路在3g、4g出現以後,我們就有乙個新需求,需要區分2g、3g、4g網路了,雖然同為蜂窩網路但是速度可是千差萬別,有時我們會感覺到4g比wifi還快,當然流量也是跑的相當肉痛
下面我們就來講一講怎麼區分2g 3g 4g網路
在這個工程裡有我們需要用到的 蘋果官方提供的實時監測網路的類 我們是在這個基礎上 稍作修改就可以做到
進入網頁 1
在示例**中 將reachability類拷貝到我們的專案當中2
首先修改reachability類中的網路型別列舉:
typedef enum : nsinteger networkstatus;複製**
然後再.m檔案中 找到方法
- (networkstatus)networkstatusforflags:(scnetworkreachabilityflags)flags;複製**
增加判斷2g 3g 4g的方法
在 if ((flags & kscnetworkreachabilityflagsiswwan) == kscnetworkreachabilityflagsiswwan) 判斷中加上**
if ((flags & kscnetworkreachabilityflagsiswwan) == kscnetworkreachabilityflagsiswwan)
else
if ([currentstr isequaltostring:ctradioaccesstechnologygprs]|| [currentstr isequaltostring:ctradioaccesstechnologyedge])else
}if ((flags & kscnetworkreachabilityflagstransientconnection) == kscnetworkreachabilityflagstransientconnection)
return kreachablevia3g;
}return reachableviawwan;
}複製**
在需要用到的地方引入我們修改過後的reachability
監聽網路變化
//新增網路監測
[[nsnotificationcenter defaultcenter] addobserver:self
selector:@selector(reachabilitychanged:)
name: kreachabilitychangednotification
object: nil];
//開啟網路監測
self.intertreach = [reachability reachabilityforinternetconnection];
[self.intertreach startnotifier];
uilabel *label = [[uilabel alloc] initwithframe:cgrectmake(100, 100, 300, 30)];
[self.view addsubview:label];
self.label = label;
//獲取當前的網路狀態
networkstatus status = [self.intertreach currentreachabilitystatus];
[self judgenetworkstatus:status];複製**
當網路發生改變時 會觸發
/**
當網路狀態發生變換時 會觸發這個方法
@param no 通知
*/- (void)reachabilitychanged:(nsnotification *)no複製**
還是很簡單的
源** 放在了
IOS 網路監測
大部分的應用都與網路有關 如果你沒有網路監測 來監測是否連線網路 很容易讓背鍋 用法也特別的簡單 按照我下面的 二部曲 包你輕鬆過 2.第二部曲 使用方法 1 靜態 網路環境現在分三種 wifi 2g 3g 4g 無網路 所以 reachability 監測也是分三種 wifi reachabili...
iOS 監測網路狀態
ios開發網路篇 監測網路狀態 ios開發網路篇 監測網路狀態 一 說明 在網路應用中,需要對使用者裝置的網路狀態進行實時監控,有兩個目的 1 讓使用者了解自己的網路狀態,防止一些誤會 比如怪應用無能 2 根據使用者的網路狀態進行智慧型處理,節省使用者流量,提高使用者體驗 沒有網路 只顯示離線的快取...
iOS 監測網路狀態
1 不廢話,直接上乾貨 在reachability.m檔案中匯入coretelephony庫 import 找到此方法if flags kscnetworkreachabilityflagsiswwan kscnetworkreachabilityflagsiswwan 修改,對了 先修改列舉值在r...