对于iOS 9,我使用Reachability公共类来检查设备是否连接到互联网.我将Swift 2代码转换为Swift 3,而Reachability不再适用.有人能告诉我如何检查iOS 10上的互联网连接吗?谢谢!这是代码片段:
open class Reachability {
class func isConnectedToNetwork() -> Bool {
var zeroAddress = sockaddr_in()
zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
}
var flags = SCNetworkReachabilityFlags()
if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) {
return false
}
let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
return (isReachable && !needsConnection)
}
}
Run Code Online (Sandbox Code Playgroud) 如何检查Swift中的网络状态?在Objective-C Reachability.h .m文件可用.现在怎么办?如何查看我是在线还是离线?
我正在使用Apple的可访问性代码,并且在网络可访问性更改时以及启动服务器连接之前设置了两个初始通知.当我在wi-fi上时,代码工作,我关闭了Wi-Fi接入点.但是,当我使用wi-fi启动应用程序并使用底层宽带连接时,然后一旦应用程序运行,然后断开wi-fi路由器与宽带路由器的连接(即Wi-Fi已打开,但没有互联网连接),我做了一个可达性检查,我得到的网络状态是ReachableViaWiFi.我已经尝试了reachabilityForInternetConnection和reachabilityWithHostName.
关于Apple的可达性代码是否可用于检测wifi已连接但没有底层网络连接的情况的任何想法?
谢谢!
connectivity ×1
ios ×1
ios10 ×1
networking ×1
objective-c ×1
reachability ×1
swift ×1
swift3 ×1