Отправка запроса при входе в геозону и без подключения к сети в данный момент - PullRequest
0 голосов
/ 06 июня 2019

Мое приложение прослушивает 3 геозоны, пока оно закрыто.При входе в геозону идентификатор отправляется на сервер.Все работает замечательно, но я хотел бы также обработать случай, когда нет сетевого подключения при входе в геозону.Как и ожидание отправки запроса, пока не будет установлено соединение.Это должно работать, когда приложение закрыто.

Это должно работать только на устройствах с iOS 11 или выше.Waitsforconnectivity не работает, я думаю, потому что временной интервал от геозоны мал.Когда я запускаю приложение, этот конкретный запрос успешно отправляется, поэтому он работает, но не, если приложение закрыто.Я должен вручную запустить приложение, чтобы отправить ожидающий запрос при наличии соединения.Я также пробовал dataTask и uploadTask, но они дают то же поведение, что и с waitsForConnectivity.Я также думаю, что невозможно проверить, есть ли сетевое соединение с планированием задачи с таймером в будущем?Потому что приложение закрыто.Это вообще возможно?Я думаю, что единственный способ сделать это с помощью удаленного push-уведомления, но запуск кода в качестве ответа на push-уведомление разрешен только с Voip.

Мне трудно поверить, что это невозможно, так как этотак просто с BroadcastReceiver на Android.

1 Ответ

0 голосов
/ 21 июня 2019

Попробуйте BackgroundFetch

С этим подходом вы можете разбудить ваше приложение с определенным периодическим интервалом, без взаимодействия с пользователем.Как только ваше приложение проснется, проверьте, есть ли у вас ожидающие данные для отправки на сервер.Если да, отправьте это.Если нет подключения к Интернету, нет проблем, запрограммируйте ваше приложение, чтобы оно просыпалось, скажем, каждые 5 часов.

// Fetch data once an hour.
   UIApplication.shared.setMinimumBackgroundFetchInterval(3600)

Простой звонок, как указано выше, разбудит ваше приложение через 1 час.Следуйте инструкциям по ссылке, и вы получите представление.

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