Cœu*_*œur 6 reachability ios ios-permissions
如果无法访问互联网,是否可以通过编程方式区分以下权限案例?
我想阅读那些无线数据权限,以区分上述情况以获得更友好的错误消息(即在一种情况下我建议验证权限,在另一种情况下我建议检查飞行模式)
基于如何在Swift中使用SCNetworkReachability,我所能找到的就是获得互联网可达性,但它不知道实际的权限:
import SystemConfiguration
@available(iOS 9.0, macOS 10.11, *)
static func internetConnectionIsReachable() -> Bool {
var zeroAddress = sockaddr_in6()
zeroAddress.sin6_len = UInt8(MemoryLayout<sockaddr_in6>.size)
zeroAddress.sin6_family = sa_family_t(AF_INET6)
guard let reachability = withUnsafePointer(to: &zeroAddress, {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
SCNetworkReachabilityCreateWithAddress(nil, $0)
}
}) else {
return false
}
var flags: SCNetworkReachabilityFlags = []
guard SCNetworkReachabilityGetFlags(reachability, &flags) else {
return false
}
return flags.contains(.reachable)
}
Run Code Online (Sandbox Code Playgroud)
总之,您可能无法区分这些情况,而且您可能也不应该想要区分。苹果甚至并不真正希望你使用可达性。他们的观点是:你不是去推理为什么,而是去做(即尝试使用网络)或死亡(即失败)。如果你将要失败,请优雅地失败,并且你已经完成了你的工作。
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |