Я работаю над приложением, в котором пользователь может «записать» маршрут, по которому он / она едет на своей машине. Каждые 1 се c мы сохраняем координаты в списке и каждые 30 секунд мы также сохраняем координаты в базе данных для этого, но это работает только тогда, когда приложение активно / на переднем плане.
Так что единственная проблема, которая возникает у нас, и прежде всего у пользователей, заключается в том, что приложение останавливает функцию записи, когда приложение неактивно / находится в фоновом режиме. Я хочу реализовать и включить эту функцию, но даже после долгих поисков и исследований мне не удалось найти решение.
В приложении я использую Mapbox Maps SDK и Mapbox Navigation SDK. addCoor () -функция дает мне координату пользователя с помощью self.mapView.userLocation! .Coordinate и управляет тем, что каждая координата добавляется к массиву в viewcontroller и что каждый 30 секунд выполняется HTTP POST для добавления координаты в базу данных.
Итак, я хочу, чтобы addCoor () работала, даже когда пользователи отправляют приложение в в фоновом режиме, до тех пор, пока пользователь сам не остановит отслеживание, нажав кнопку «Стоп» в приложении или достигнув максимальной точки маршрута. В этот момент я хочу вызвать stopTracking () , чтобы маршрут был завершен.
В качестве дополнения я также хочу, чтобы при запуске приложения в фоновом режиме появлялись уведомления который позволяет пользователю открыть приложение и сразу же вызывает stopTracking () , когда они щелкают уведомление.
Любой, кто имеет опыт работы с фоновыми задачами в swift. Любая помощь приветствуется!