iOS NWPathMonitor - Как обнаружить изменение соединения - PullRequest
0 голосов
/ 22 апреля 2020

Я играю с NWPathMonitor, чтобы обнаружить изменения соединения с WiFi на Cellular et c. Я использовал Reachability в прошлом, и он работает хорошо, но так как это тестовое приложение было только для iOS 12+, я хотел сделать то же самое только с использованием NWPathMonitor.

Меня смущает то, что, например, если Я подключен к серверу по Wi-Fi и включаю и выключаю сотовую связь называется pathUpdateHandler. Это имеет смысл в одном аспекте, поскольку мой путь теперь имеет доступ к двум интерфейсам (когда я включаю сотовую связь) и только к одному интерфейсу, когда я выключаю сотовую связь.

Однако используемое мной соединение не изменилось, я Я все еще подключен через Wi-Fi, поэтому я не хочу принудительно устанавливать переподключение к серверу, что должно происходить только тогда, когда я вынужден переключиться с Wi-Fi на сотовую связь, например, при выходе из дома.

Это поведение по умолчанию в Достижимость, но менее очевидная в NWPathMonitor. Моя единственная идея на данный момент - взглянуть на первый доступный интерфейс, предполагая, что iOS сортирует их в соответствии с приоритетом. Некоторые быстрые тесты показывают, что это похоже на работу. Я сохраняю свой последний использованный интерфейс, и когда я получаю новое обновление пути, я проверяю, является ли интерфейс в позиции 0 в availableInterfaces тем же, который я уже использую, в этом случае никаких действий не требуется, в противном случае мне нужно повторно подключиться к серверу так как ip изменился.

Это решение кажется немного странным, поэтому я просто хотел проверить, есть ли у кого идея получше?

Заранее спасибо за любые предложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...