iOS12 判斷網絡鏈接狀態NWPathMonitor


iOS12 以前,如果想判斷網絡狀態,我們需要引入一段蘋果官方提供的代碼,類名叫做Reachability。這么普通的功能竟然不是庫自帶的。好在蘋果在iOS12 推出了 NWPathMonitor,能更加方便細致地監控網絡狀態了。

在網上看到了一篇好文章,
https://learnappmaking.com/nwpathmonitor-internet-connectivity/

我對其進行了翻譯和總結

首先,需要引入 Network 庫,
之后聲明一個實例
let monitor = NWPathMonitor()

上面這段代碼表示監聽所有網絡類型的狀態,如果需要針對某一種網絡,可以使用
let monitor = NWPathMonitor(requiredInterfaceType: .wifi)

其實主要使用的就2種,.wifi 和 .cellular

之后就可以使用以下代碼判斷當前網絡狀態:

 if monitor.currentPath.status == .satisfied {
     //網絡可達
 }

還可以判斷出是否正在使用某種網絡
monitor.currentPath.usesInterfaceType(.wifi)

如果需要實時監聽網絡狀態,還需要使用以下代碼,並且要注意monitor的生命周期,不要被提前釋放了。

monitor.pathUpdateHandler = { path in

    if path.status == .satisfied {
        print("Yay! We have internet!")
    }
}
let queue = DispatchQueue.global(qos: .background)
monitor.start(queue: queue)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM