Как открыть приложение в фоновом режиме через некоторый интервал

#ios #swift #core-location

#iOS #swift #ядро-местоположение

Вопрос:

Я создаю приложение iOS в SWIFT, где местоположение пользователя выбирается и отправляется на сервер каждые 30 минут. Когда приложение открыто, оно продолжает отправлять на сервер широту / длину местоположения, но когда приложение закрыто или приостановлено, оно не отправляет. Я хочу отправить местоположение, даже если приложение закрыто. Возможно ли это каким-то образом? Я просто хочу отправить местоположение на сервер, нет необходимости открывать приложение снова и снова?

Комментарии:

1. medium.com/@calvinlin_96474/… и developer.apple.com/documentation/corelocation/…

Ответ №1:

Ваше приложение должно поддерживать фоновые задачи, чтобы иметь возможность работать в фоновом режиме.

Я полагаю, что на этот вопрос отвечали несколько раз. Вот ссылка на документацию

Поскольку вы используете location, я бы рекомендовал вам использовать UIBackgroundModes в качестве locations.Но убедитесь, что вы не разряжаете батарею пользователя.

Также использование фоновой выборки (UIBackgroundModes — fetch) и автоматического уведомления может быть отличным способом запустить ваше приложение через равный интервал времени.

Обновить

Для выполнения операций вы можете использовать автоматическое уведомление — обратитесь к этой документации Apple

Согласно документации — система запускает ваше приложение в фоновом режиме и вызывает application(_:didReceiveRemoteNotification:fetchCompletionHandler:)

Обновление 2

Для локального уведомления наряду с планированием пользовательских действий обратитесь к этой документации Apple. Но я действительно сомневаюсь, что это поможет вам достичь желаемого результата. Главным образом потому, что ваше приложение получит событие только тогда, когда пользователь выполнит какое-либо действие в вашем локальном уведомлении, и если он проигнорирует его, ваше приложение останется в фоновом режиме.

Комментарии:

1. Привет, спасибо за ваш подробный ответ. Я уже внедрил фоновое обновление местоположения, когда приложение работает в фоновом режиме или не приостановлено. Я также реализовал push-уведомление, которое отображается после временного интервала, но как выполнить код при отображении уведомления. У меня нет проблемы, отображается приложение или нет после push-уведомления.

2. Я хочу просто вызвать api при отображении уведомления, чтобы обновить широту / длину местоположения.

3. как реализовать это в локальном push-уведомлении, поскольку мое приложение отправляет локальное уведомление через каждые 30 минут.