геозона плагина Cordova - Android не может получать события перехода в фоновом режиме

Я создаю приложение Cordova с учетом местоположения для iOS и Android, используя этот плагин Geofencing.

Когда я начал тестировать свою реализацию на своем Android-устройстве, я обнаружил, что переходы между геозонами не обрабатываются в фоновом режиме, как только они обнаруживаются, а скорее «собираются», а затем срабатывают сразу при следующем запуске приложения вручную. (под «огнем» я подразумеваю вызов метода window.geofence.onTransitionReceived()).

Чтобы уточнить, я отключил встроенную функцию уведомлений, ожидая, что моему приложению будут доставляться только события, чтобы автоматически обновлять наш удаленный сервер в фоновом режиме. В то время как версия для iOS успешно получает эти переходы в фоновом режиме, я не могу понять, что не так с Android...

Кто-нибудь знает этот плагин и как правильно его использовать для Android? Было ли что-то, что я пропустил?

Спасибо, Дор.


person FMA    schedule 29.09.2015    source источник


Ответы (1)


У меня была аналогичная проблема, и я поднял эту проблему: https://github.com/cowbell/cordova-plugin-geofence/issues/53. Похоже, что вы не можете выполнять javascript в фоновом режиме на Android, так что это ограничение.

Мое решение состояло в том, чтобы написать свою собственную Java в GeofencePlugin.java, изменив следующий метод в соответствии с моими потребностями (в моем случае создание HttpClient и отправка запроса POST)

public static void onTransitionReceived(List<GeoNotification> notifications)
person Tom Crowder    schedule 24.11.2015