ios 快速判斷當前網路狀態 三種方法

2021-09-02 02:48:37 字數 1628 閱讀 5351

一、利用afn框架

//1.建立網路狀態監測管理者

afnetworkreachabilitymanager *manager = [afnetworkreachabilitymanager sharedmanager];

//2.監聽改變

[manager setreachabilitystatuschangeblock:^(afnetworkreachabilitystatus status)

}];[manager startmonitoring];//開始監聽

}

二、利用系統狀態列判斷網路狀態

int type = 0;

for (id child in children)

}switch (type)

警告:此方法存在一定的侷限性,比如當狀態列被隱藏的時候,無法使用此方法。

三、通過reachability框架

reachability是乙個在ios系統環境下檢測ios裝置當前的網路環境的庫。它的主要功能是監測三種網路環境:2g/3g/4g、wifi網路、無網路。在應用的執行狀態下,實時監測網路連線方式的變更,及時給出通知。

reachability的使用

1.直接獲取當前網路環境:
reachability*reach=[reachability reachabilitywithhostname:@"www.hcios.com"];

//2.判斷當前的網路狀態

switch([reach currentreachabilitystatus])

//根據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*)notificationelseelse if([reach currentreachabilitystatus]==reachableviawwan)

}}

通過通知的方式使用reachability是在程式中經常使用的,reachability可以在使用者的網路狀態發生改變時,及時給出通知提醒,防止資料流量的快速流失,在實際的專案應用中是十分常見的。

ios 快速判斷當前網路狀態 三種方法

1 利用afn框架 1.建立網路狀態監測管理者 afnetworkreachabilitymanager manager afnetworkreachabilitymanager sharedmanager 2.監聽改變 manager setreachabilitystatuschangebloc...

iOS 判斷當前網路狀態的三種方法

reachability 在 reachability標頭檔案中我們可以看到無網路,wifi和蜂窩網三個網路狀態的列舉值,如下 typedef enum nsinteger networkstatus 1 獲取網路狀態 在ios 7之前,當使用者網路為蜂窩網路時,是沒法判斷3g 4g等網路型別的,i...

iOS 判斷當前網路狀態

1.如果只判斷當前是否是無網的狀態 if reachability reachabilityforlocalwifi currentreachabilitystatus notreachable reachability reachabilityforinternetconnection curre...