Можно ли без реактивной настройки собирать информацию о геолокации в фоновом режиме для Android и / или iOS? - PullRequest
1 голос
/ 11 марта 2019

Возможно ли в реактивном режиме выполнить фоновую задачу с мониторингом положения GPS (без запуска всего приложения в фоновом режиме), даже если телефон заблокирован? Я хочу показать некоторую информацию (уведомление) на экране, когда телефон будет в каком-то положении.

Мне нужно объявить тему проекта в моих исследованиях, но я не знаю, возможно ли реализовать эту функцию.

1 Ответ

0 голосов
/ 11 марта 2019

Это наверняка ... если у вас есть только одна заданная позиция (или менее 20 позиций), вам лучше всего использовать геозонирование API CoreLocation!

Вы можете настроить регион следующим образом:

if CLLocationManager.isMonitoringAvailable(for: CLCircularRegion.self) {
    // Register the region.
    let region = CLCircularRegion(
        center: center, 
        radius: maxDistance, identifier: identifier
    )
    region.notifyOnEntry = true

    locationManager.startMonitoring(for: region)
}

(Предполагая, что вы уже запросили и проверили права доступа пользователя к местоположению)!

Ваше приложение будет запускаться в фоновом режиме всякий раз, когда происходит событие мониторинга региона, поэтому вы должны обязательно установить новый CLLocationManager и дать ему делегат для получения обновлений в вашей application(_application:didFinishLaunchingWithOptions) функции!

Затем можно использовать обратные вызовы делегатов для запуска локального уведомления.

Здесь есть небольшое предостережение: это не сработает, если пользователь отключил фоновое обновление приложения для вашего приложения!

К счастью, уже есть встроенная библиотека, которая позволяет вам настраивать следующие регионы: https://github.com/martijndeh/react-native-region-monitor. К сожалению, я действительно думаю, что при запуске уведомления ваше приложение JavaScript будет запущено полностью (в фоновом режиме), но это не слишком большая проблема.

На GitHub также может содержаться информация о том, как реализовать это и на Android!

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