【发布时间】:2018-09-25 15:39:09
【问题描述】:
我不知道这是否可能,但这是我的问题 -
- 当 WiFi 已连接且互联网开启时,路由器上的黄灯会亮起
- 当 WiFi 已连接且互联网关闭时,路由器上的红灯会亮起
那么是否可以区分第二种情况,还是与无法访问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?
【问题讨论】:
-
使用这个问题的答案:stackoverflow.com/questions/26971240/…,你可以运行
ping 8.8.8.8,例如,看看你是否得到答案。得到答案将意味着有互联网。以防万一可达性没有提供更好的方法。 -
哎呀我怎么没想到。谢谢@regina_fallangi 我会更新我的代码看看它是否有效
-
我相信它适用于除中国以外的任何地方。如果它有效,请回答您自己的问题,看看它是否有效肯定很有趣。
-
@dniswhite 我在 swift 中有相同的代码。它只是没有连接Wifi但没有互联网的情况:(
标签: ios swift macos cocoa reachability-swift