Как обнаружить изменения в интернет-соединении на iOS, стиль делегата?
Мне нужна функция для запуска только тогда, когда система обнаруживает, что нет подключения к Интернету, а затем еще одна функция для запуска, когда система обнаруживает подключение к Интернету.
Я думаю о чем-то вроде этого:
func onInternetConnection() {
//Enable actions
}
func onInternetDisconnection() {
//Disable actions, alert user
}
Мне также понадобится способ определить, когда система переподключается, чтобы я мог сообщить пользователю, что она переподключается, как в Facebook Messenger.
Как я могу это сделать?
Я использую Moya/Alamofire для моего сетевого уровня.
2 ответа
Решение
Это работает в случае Alamofire
import Alamofire
// In your view did load or in app delegate do like this
let reachabilityManager = NetworkReachabilityManager()
reachabilityManager.listener = { status in
switch status {
case .notReachable:
print("The network is not reachable")
self.onInternetDisconnection()
case .unknown :
print("It is unknown whether the network is reachable")
self.onInternetDisconnection() // not sure what to do for this case
case .reachable(.ethernetOrWiFi):
print("The network is reachable over the WiFi connection")
self.onInternetConnection()
case .reachable(.wwan):
print("The network is reachable over the WWAN connection")
self.onInternetConnection()
}
}
Alamofire и Rechability являются библиотекой и имеют некоторые функции для проверки интернет-соединения. Вы можете использовать один из этого.