一蹂安、前言
在移動(dòng)開(kāi)發(fā)中椭迎,檢測(cè)網(wǎng)絡(luò)的連接狀態(tài)尤其檢測(cè)網(wǎng)絡(luò)的類型尤為重要。本文將介紹在iOS開(kāi)發(fā)中田盈,如何使用Swift檢測(cè)網(wǎng)絡(luò)連接狀態(tài)及網(wǎng)絡(luò)類型(移動(dòng)網(wǎng)絡(luò)侠碧、Wifi)。
二缠黍、如何實(shí)現(xiàn)
Reachability.swift 是一個(gè)使用Swift寫的第三方網(wǎng)絡(luò)檢測(cè)類弄兜,可以用來(lái)檢測(cè)網(wǎng)絡(luò)連接狀態(tài)及網(wǎng)絡(luò)類型(移動(dòng)網(wǎng)絡(luò)、Wifi)功能瓷式。
三替饿、如何使用
1. 使用Cocopod安裝Reachability.swift
use_frameworks!
pod 'ReachabilitySwift'
2. 基本使用代碼示例
使用前記得導(dǎo)入ReachabilitySwift類,下面代碼放在viewDidLoad()方法中即可贸典。
var reachability: Reachability!
do {
reachability = try Reachability.reachabilityForInternetConnection()
} catch {
print("Unable to create Reachability")
return
}
// 檢測(cè)網(wǎng)絡(luò)連接狀態(tài)
if reachability.isReachable() {
print("網(wǎng)絡(luò)連接:可用")
} else {
print("網(wǎng)絡(luò)連接:不可用")
}
// 檢測(cè)網(wǎng)絡(luò)類型
if reachability.isReachableViaWiFi() {
print("網(wǎng)絡(luò)類型:Wifi")
} else if reachability.isReachableViaWWAN() {
print("網(wǎng)絡(luò)類型:移動(dòng)網(wǎng)絡(luò)")
} else {
print("網(wǎng)絡(luò)類型:無(wú)網(wǎng)絡(luò)連接")
}
3. 監(jiān)聽(tīng)網(wǎng)絡(luò)變化
// 網(wǎng)絡(luò)可用或切換網(wǎng)絡(luò)類型時(shí)執(zhí)行
reachability.whenReachable = { reachability in
// 判斷網(wǎng)絡(luò)狀態(tài)及類型
}
// 網(wǎng)絡(luò)不可用時(shí)執(zhí)行
reachability.whenUnreachable = { reachability in
// 判斷網(wǎng)絡(luò)狀態(tài)及類型
}
do {
// 開(kāi)始監(jiān)聽(tīng)
try reachability.startNotifier()
} catch {
print("Unable to start notifier")
}
停止監(jiān)聽(tīng)調(diào)用reachability.stopNotifier()即可视卢。