【发布时间】:2017-06-29 11:29:16
【问题描述】:
如何通知用户 swift 3 没有网络连接。我尝试了很多解决方案,但到目前为止都没有奏效。我不是在寻找网络连接的速度
【问题讨论】:
标签: swift
如何通知用户 swift 3 没有网络连接。我尝试了很多解决方案,但到目前为止都没有奏效。我不是在寻找网络连接的速度
【问题讨论】:
标签: swift
有很多资源展示了如何检查互联网连接。例如,来自this。
func isInternetAvailable() -> 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) {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {zeroSockAddress in
SCNetworkReachabilityCreateWithAddress(nil, zeroSockAddress)
}
}
var flags = SCNetworkReachabilityFlags()
if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) {
return false
}
let isReachable = flags.contains(.reachable)
let needsConnection = flags.contains(.connectionRequired)
return (isReachable && !needsConnection)
}
func showAlert() {
if !isInternetAvailable() {
let alert = UIAlertController(title: "Warning", message: "The Internet is not available", preferredStyle: .alert)
let action = UIAlertAction(title: "Dismiss", style: .default, handler: nil)
alert.addAction(action)
present(alert, animated: true, completion: nil)
}
}
你需要导入:
import Foundation
import SystemConfiguration
【讨论】:
viewDidLoad()堡垒测试中致电showAlert()。
viewDidLoad 中呼叫showAlert()? 2. 关掉网络? 3. 调试看看代码运行是否正确?