Чтобы гарантировать правильную работу приложения, которое я разрабатываю, необходимо всегда знать текущее состояние и разрешения GPS.
Изучая официальную документацию по нативной реакции, обратите внимание, что не существует естественного способа проверки изменений в статусах GPS с использованием официальной библиотеки (Geolocation). Поэтому я решил поискать сторонние библиотеки, которые позволили бы мне проверить изменения, среди которых я нашел:
- реагировать-нативный-GPS-состояние
- реагировать-нативный-подключения-статус
Обе библиотеки имеют небольшие проблемы на Android и не сообщают об изменениях состояния и разрешений датчика.
Некоторые программисты используют функцию navigator.geolocation.getCurrentPosition(...)
в качестве стратегии для получения изменений в состояниях, используя код, подобный следующему:
navigator.geolocation.getCurrentPosition(
position => {
//Processing the enabled status of the GPS
},
error => {
//Processing the disabled status of the GPS
},
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
);
Очевидно, что это решение не является наиболее оптимальным (в большинстве случаев может быть представлено TIME_OUT), за исключением того, что необходимо постоянно внедрять дополнительный код для проверки состояния.