【发布时间】:2018-12-04 08:06:00
【问题描述】:
我想检查 wifi 是否有互联网连接。包括 alamofire 在内的大多数解决方案/方法仅在设备仅连接到 wifi 时才返回 true,不要检查 wifi 是否有互联网连接。
【问题讨论】:
-
您可以使用可达性并指定一个 Internet 主机名作为测试点
我想检查 wifi 是否有互联网连接。包括 alamofire 在内的大多数解决方案/方法仅在设备仅连接到 wifi 时才返回 true,不要检查 wifi 是否有互联网连接。
【问题讨论】:
Apple 的reachability sample code 仅允许在接口可用且可能允许连接的情况下获取信息。 Apple 托管了一些端点,用于验证 Internet 访问是否可用。例如this one。您可以在 Apple 的可访问性之上创建自己的包装器,或使用现有的称为 Connectivity 的包装器。它为您提供了这样的选择:
connectedViaWiFi,
connectedViaWWAN,
connectedViaWiFiWithoutInternet,
connectedViaWWANWithoutInternet
你对connectedViaWiFiWithoutInternet 和connectedViaWWANWithoutInternet 很感兴趣。该库允许配置要使用的端点等。
【讨论】:
简单地做:
var reachabilityManager = NetworkReachabilityManager()
private
var networkIsReachable : Bool{
return reachabilityManager?.isReachable ?? false
}
private
var isEthernetOrWifiReachable : Bool{
return reachabilityManager?.isReachableOnEthernetOrWiFi ?? false
}
由于手机上没有以太网isReachableOnEthernetOrWiFi 将检查 wifi
【讨论】: