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

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

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

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

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

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

1 ответ

Решение

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

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

public static void onTransitionReceived(List<GeoNotification> notifications)
Другие вопросы по тегам