Можно ли проверить, подключен ли WiFi, но в Swift нет подключения к Интернету с использованием Reachability? - PullRequest
0 голосов
/ 25 сентября 2018

Я не знаю, возможно ли это, но вот мой вопрос -

  • Когда WiFi подключен и интернет ВКЛ , тогда Желтый свет светится на маршрутизаторе
  • Когда WiFi подключен и Интернет ВЫКЛ , тогда Красный свет светится на маршрутизаторе

Так жеМожно ли различить 2-й случай или он такой же, как когда Интернет недоступен?

Я использую https://github.com/ashleymills/Reachability.swift

Полный код можно найти https://github.com/deadcoder0904/net-alert

Это всего лишь один файл

Соответствующий код -

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() устанавливает значок состояния в соответствии с цветом

IХотите знать, когда Интернет недоступен, но Wi-Fi подключен в Swift?

1 Ответ

0 голосов
/ 26 сентября 2018

Я нашел решение.

Как предположил Оги, это невозможно сделать с Reachability, поскольку он просто проверяет, доступен ли WiFi или сотовый или нет.

Так что мне пришлось пинговать сайт, чтобы проверить, онлайн он или нет.

Если я получу от него ответ 200, значит, он подключен.

Но если я не получу 200, то, хотя WiFi подключен, но нет интернета.

Я не знал, как правильно пинговать, поэтому я спросил другойвопрос откуда я получил ответ

Полный код можно найти по адресу https://github.com/deadcoder0904/net-alert

...