使用Reachability監聽應用網絡狀態

最近在給應用添加網絡監聽的時候,發現在iOS11中的控制中心關閉WiFi和移動數據時,Reachability檢測到的狀態還是WiFi連接狀態。發現是公司項目里用的版本太舊沒有適配iOS11系統,去官網下載了最新的替換就可以了。(Reachability下載地址
如果需要單個頁面監聽網絡狀態的變化,參考實例代碼。
下面是全局監聽的做法:

  1. AppDelegate里面添加一個Reachability的實例屬性。這里需要定義一個屬性,而且這個屬性需要在應用周期內存活,這樣才可以對網絡進行監聽和發出通知。
  2. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法里面開啟網絡監聽。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
    NSString *remoteHostName = @"www.apple.com";
    self.hostReachability = [Reachability reachabilityWithHostName:remoteHostName];
    [self.hostReachability startNotifier];

    return YES;
}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.ios高性能編程 (1).內層 最小的內層平均值和峰值(2).耗電量 高效的算法和數據結構(3).初始化時...
    歐辰_OSR閱讀 29,547評論 8 265
  • Swift1> Swift和OC的區別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,136評論 1 32
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • 一位武士手里握著一條魚來到一休禪師的房間。 他說:“我們打個賭,禪師說我手中的這條魚是死是活?” 一休知道如果他說...
    芳芳郁金香_1e19閱讀 139評論 0 3
  • 1.很多時候,我們無法活在當下,可能只是還沒弄清自己究竟想要什么。 第一個故事是這樣開始的,A君從小就是個性格內向...
    段童閱讀 1,739評論 1 1