【发布时间】:2020-01-09 19:32:45
【问题描述】:
在我的应用程序中,我正在检查移动数据是否关闭,它会显示弹出窗口,例如检查您的数据连接。为此我写了这段代码
import Foundation
import SystemConfiguration
public class Reachability {
class func isConnectedToNetwork() -> Bool {
var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))
zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, UnsafePointer($0))
}
var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0)
if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false {
return false
}
let isReachable = flags == .Reachable
let needsConnection = flags == .ConnectionRequired
return isReachable && !needsConnection
}
}
但通过此代码,它仅检查 wifi 是否已连接。但如果我尝试使用 3g 移动数据,它总是向我显示您的移动数据未连接。那我该如何解决呢?
【问题讨论】:
-
这对我有用:link
-
这是有效的。当我通过 wifi 连接时。但是当我通过移动数据连接时它不起作用@DadoZolic
标签: ios swift internet-connection