美文网首页
iOS Alamofire实时检测网络状态

iOS Alamofire实时检测网络状态

作者: lczalh | 来源:发表于2019-12-03 09:31 被阅读0次

实时检测网络状态

1. 创建全局NetworkReachabilityManager对象

let newsHomeNetworkReachabilityManager = NetworkReachabilityManager(host: "http://www.baidu.com")

2. 开启网络监控

newsHomeNetworkReachabilityManager?.startListening()

3. 监听网络变化

newsHomeNetworkReachabilityManager?.listener = { state in
    switch state {
        case .unknown:
            LCZProgressHUD.showError(title: "似乎与网络断开了连接!")
            break
        case .notReachable:
            LCZProgressHUD.showError(title: "似乎与网络断开了连接!")
            break
        case .reachable(_):
            break
    }
}

4. 不需要时停止监控

newsHomeNetworkReachabilityManager?.stopListening()

5. 其它常用属性

open var isReachable: Bool // 当前网络是蜂窝网络或者是WiFi连接

open var isReachableOnWWAN: Bool // 当前网络是通过蜂窝网络连接

open var isReachableOnEthernetOrWiFi: Bool // 当前网络是通过WiFi网络连接

open var networkReachabilityStatus: NetworkReachabilityStatus // 当前网络状态

6. 注意事项

6.1 NetworkReachabilityManager不能为局部变量,否则会提前释放

6.2 每次使用需new一个新的newsHomeNetworkReachabilityManager,否则只响应最后监控回调

相关文章

网友评论

      本文标题:iOS Alamofire实时检测网络状态

      本文链接:https://www.haomeiwen.com/subject/bqaqgctx.html