Swift 网络状态监听 - lanligang/NearPublicProject GitHub Wiki

//导入头文件
import Alamofire
class ServerCheck {
	private static let sharedInstance = ServerCheck()
	var manager = NetworkReachabilityManager(host:"www.baidu.com")
	init() {
		manager?.listener = { status in
			print("\(status)")
		}
		//开始监听
		manager?.startListening()
	}
	class var sharedManager:ServerCheck {
		let instance = self.sharedInstance
		return instance
	}
	func networkReachabilityStatus() -> Alamofire.NetworkReachabilityManager.NetworkReachabilityStatus {
		let status:Alamofire.NetworkReachabilityManager.NetworkReachabilityStatus = (manager?.networkReachabilityStatus)!
		print("当前网络状态:\(status)")
		return status
	}
}

class SerVer {
	enum CustomNetStatus {
		case NONET //无网络
		case WIFI  //WiFi
		case WWAN  // 3G 或 4G
	}
	class open func netWorkState()->CustomNetStatus{
		var status:CustomNetStatus = .NONET
		let serVerS:NetworkReachabilityManager.NetworkReachabilityStatus = ServerCheck.sharedManager.networkReachabilityStatus()
		switch serVerS {
		case .notReachable:
			status = .NONET
			break
		case .reachable(NetworkReachabilityManager.ConnectionType.ethernetOrWiFi):
			status = .WIFI
			break
		case .reachable(NetworkReachabilityManager.ConnectionType.wwan):
			status = .WWAN
			break
			
		default:
			status = .NONET
			break
		}
		return status
	}
}