Геозона плагина 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)