是否可以使用 Reachability 检查 WiFi 是否已连接但 Swift 中没有互联网连接?
Is it possible to check if WiFi is connected but there is no internet connection in Swift using Reachability?
我不知道这是否可行,但这是我的问题 -
- 当 WiFi 已连接且互联网 ON 时 Yellow Light 在路由器
上亮起
- 当 WiFi 已连接且互联网处于 OFF 时,路由器 红灯 亮起
那么是否可以区分第二种情况,还是与无法访问 Internet 时一样?
我正在使用https://github.com/ashleymills/Reachability.swift
可以找到完整的代码https://github.com/deadcoder0904/net-alert
基本上就在one file
相关代码-
let reachability = Reachability()!
reachability.whenReachable = { reachability in
if reachability.connection == .wifi {
print("Reachable via WiFi")
self.setStatusIcon(color: "green")
} else {
print("Reachable via Cellular")
self.setStatusIcon(color: "yellow")
}
}
reachability.whenUnreachable = { _ in
print("Not reachable")
self.setStatusIcon(color: "red")
}
do {
try reachability.startNotifier()
} catch {
print("Unable to start notifier")
self.setStatusIcon(color: "yellow")
}
其中setStatusIcon()
根据颜色设置状态图标
我想知道在 Swift 中什么时候无法访问互联网但已连接 WiFi?
我找到了解决办法。
正如 Augie 所建议的,无法使用 Reachability 来做到这一点,因为它只是检查 WiFi 或 Cellular 是否可达。
所以我不得不ping一个网站来检查它是否在线。
如果我从它那里收到 200 响应,那么它已连接。
但如果我没有得到 200,那么即使 WiFi 已连接但没有互联网。
我不知道如何正确 Ping 所以我问了 where I got
我不知道这是否可行,但这是我的问题 -
- 当 WiFi 已连接且互联网 ON 时 Yellow Light 在路由器 上亮起
- 当 WiFi 已连接且互联网处于 OFF 时,路由器 红灯 亮起
那么是否可以区分第二种情况,还是与无法访问 Internet 时一样?
我正在使用https://github.com/ashleymills/Reachability.swift
可以找到完整的代码https://github.com/deadcoder0904/net-alert
基本上就在one file
相关代码-
let reachability = Reachability()!
reachability.whenReachable = { reachability in
if reachability.connection == .wifi {
print("Reachable via WiFi")
self.setStatusIcon(color: "green")
} else {
print("Reachable via Cellular")
self.setStatusIcon(color: "yellow")
}
}
reachability.whenUnreachable = { _ in
print("Not reachable")
self.setStatusIcon(color: "red")
}
do {
try reachability.startNotifier()
} catch {
print("Unable to start notifier")
self.setStatusIcon(color: "yellow")
}
其中setStatusIcon()
根据颜色设置状态图标
我想知道在 Swift 中什么时候无法访问互联网但已连接 WiFi?
我找到了解决办法。
正如 Augie 所建议的,无法使用 Reachability 来做到这一点,因为它只是检查 WiFi 或 Cellular 是否可达。
所以我不得不ping一个网站来检查它是否在线。
如果我从它那里收到 200 响应,那么它已连接。
但如果我没有得到 200,那么即使 WiFi 已连接但没有互联网。
我不知道如何正确 Ping 所以我问了