Насколько я понимаю, Alamofire встроен со встроенной функцией Reachability, поэтому мой собственный обработчик будет выглядеть примерно так:
import Alamofire
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()
}
}
Я делаю запрос через:
let provider = MoyaProvider<MyMoyaRequest>()
let token = provider.request(.start(
username:self.email.value,
password: self.password.value) { result in
switch result {
case let .success(moyaResponse):
//handle success
case let .failure(error):
//handle failure
}
}
Итак, если я хочу, чтобы перед каждым запросом Moya проверялось подключение, как лучше всего это сделать?
- Напишите расширение для одного из внутренних устройств Moyas, чтобы сначала проверить
- Используйте плагин Moya (подготовьте), чтобы проверить
- Какие-то модные штаны, о которых пока и не догадывались ...
Я специально не хочу добавлять проверку достижимости к каждому вызову API из соображений удобочитаемости. Но мне интересно услышать об использованных ранее методах.
Спасибо за любую помощь, которую вы можете предложить.