Я был в ситуации, когда маршрутизатор с Wi-Fi был подключен, но маршрутизатор не был подключен к Интернету (нет Wi-Fi). Какой бы класс доступности я не использовал в то время, считал, что он подключен, потому что Wi-Fi был доступен, но он не мог определить, что сам Wi-Fi не может подключиться.
Я сейчас использую Эшли Миллс, Достижимость , и она отлично работает, потому что она может сказать, подключен я к Интернету или нет, пингуя имя хоста.
let reachability = Reachability(hostname: "www.google.com")
reachability.whenReachable = { (reachability) in
// connection is fine remove no connection alert if it's on screen
}
reachability.whenUnreachable = { (reachability) in
// can't ping Google so alert no connection
}
Firebase имеет аналогичную функцию:
let connectedRef = Database.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: { (connected) in
if let boolean = connected.value as? Bool, boolean == true {
// connection is fine remove no connection alert if it's on screen
else {
// can't ping Firebase so alert no connection
}
})
Вопрос в том, может ли описанная выше функция Firebase определить, включен ли мой Wi-Fi (маршрутизатор подключен), но сам Wi-Fi не подключен к Интернету (нет Wi-Fi), как AshleyMills
?