Есть ли способ проверить, доступно ли интернет-соединение с помощью Swift?
Я знаю, что для этого существует множество сторонних библиотек, но все они написаны на Objective-C. Ищу альтернативу Swift.
ios
swift
network-connection
Исуру
источник
источник
Ответы:
Как упоминалось в комментариях, хотя в Swift можно использовать библиотеки Objective-C, мне нужно было более чистое решение Swift. Существующий класс Apple Reachability и другие сторонние библиотеки казались мне слишком сложными для перевода на Swift. Я погуглил еще немного и наткнулся на это статью, в которой показан простой метод проверки доступности сети. Я решил перевести это на Swift. Я столкнулся с множеством препятствий, но благодаря Мартину Р из StackOverflow мне удалось их решить и, наконец, получить работоспособное решение на Swift. Вот код.
Для Swift> 3.0
Это работает как для соединений 3G, так и для WiFi. Я также загрузил его на свой GitHub с рабочим примером.
источник
isConnectedToNetwork
возвращается true, но я не могу позвонить в свою веб-службуЯ даю тебе лучший способ ...
Вы должны создать класс с этим кодом
А затем вы можете проверить подключение к Интернету в любом месте вашего проекта, используя этот код:
Очень просто!
* Этот способ основан на ответе Викрама Поте!
источник
Для Swift 3.1 (iOS 10.1)
Если вы хотите различать тип сети (например, WiFi или WWAN):
Ты можешь использовать:
Вот весь класс достижимости, который различает типы сетей:
источник
Поскольку sendSynchronousRequest устарел, я попробовал это, но «return Status» был вызван до того, как ответ был завершен.
Этот ответ работает хорошо, проверьте подключение к Интернету с помощью Swift
Вот что я все равно пробовал:
источник
SWIFT 3: Проверяет наличие Wi-Fi и подключения к Интернету :
ИСПОЛЬЗОВАНИЕ:
источник
public func isConnectedToNetwork() {...}
следует изменить наclass func isConnectedToNetwork{...}
для вашего случая использования.Вы также можете использовать ответ ниже.
источник
SWIFT 3: проверьте соединение 3G и Wi-Fi
источник
Для Swift 5:
источник
monitor.start(queue: someQueue)
Swift 4
источник
Я нашел лучший из всех ответов, и это продолжает каждый раз проверять статус подключения к Интернету.
Для начала добавьте импорт для сетевой инфраструктуры:
Затем создайте экземпляр NWPathMonitor
Чтобы попробовать это,
Помните, что закрытие вызывается каждый раз при изменении статуса подключения.
Вот как я использовал это в своем контроллере просмотра,
источник