本篇主要講解iOS開發(fā)中的網(wǎng)絡(luò)監(jiān)控

前言

在開發(fā)中,有時候我們需要獲取這些信息:

  • 手機(jī)是否聯(lián)網(wǎng)

  • 當(dāng)前網(wǎng)絡(luò)是WiFi還是蜂窩

那么我總結(jié)一下具體的使用場景有哪些?肯定有遺漏:

  1. 聊天列表,需要實時監(jiān)控當(dāng)前的網(wǎng)絡(luò)是不是可達(dá)的,如果不可達(dá),則出現(xiàn)不能聯(lián)網(wǎng)的提示

  2. 在線視屏播放,需要判斷當(dāng)前的網(wǎng)絡(luò)狀態(tài),如果不是WiFi,應(yīng)該給出流量播放的提示

  3. 對于比較重要的網(wǎng)絡(luò)請求,在請求出錯的情況下,判斷網(wǎng)路狀態(tài),找出請求失敗原因。

  4. 可以把請求進(jìn)行緩存后,當(dāng)監(jiān)聽到網(wǎng)絡(luò)連接成功后發(fā)送。舉個例子,每次進(jìn)app都要把位置信息發(fā)給服務(wù)器,如果發(fā)送失敗后,發(fā)現(xiàn)是網(wǎng)絡(luò)不可達(dá)造成的失敗,那么可以把這個請求放入到一個隊列中,在網(wǎng)絡(luò)可達(dá)的時候,開啟隊列任務(wù)。

  5. 當(dāng)網(wǎng)絡(luò)狀態(tài)變化時,實時的給用戶提示信息

  6. 獲取某個節(jié)點或地址是不是可達(dá)的

但是,極其不建議在發(fā)請求前,先檢測當(dāng)前的網(wǎng)絡(luò)是不是可達(dá)。因為手機(jī)的網(wǎng)絡(luò)狀態(tài)是經(jīng)常變化的》

SCNetworkReachabilityFlags

SCNetworkReachabilityFlags是獲取網(wǎng)絡(luò)狀態(tài)最核心的東西。我們來看看它有哪些內(nèi)容:

作用

SCNetworkReachabilityFlags能夠判斷某個指定的網(wǎng)絡(luò)節(jié)點名稱或者地址是不是可達(dá)的,也能判斷該節(jié)點或地址是不是需要先建立連接,也可以判斷是不是需要用戶手動去建立連接。

注意:這里所說的連接分為用編程手段連接和用手動建立連接兩種

我們

網(wǎng)友評論