Доступ к GPS-локации с использованием React Native
Что ж, давно, я снова вернулся с очередным постом. Я начал учиться реагировать на родной язык два месяца назад. И поверьте мне, по сравнению с Java для Android, React Native использует гораздо более простой подход для написания кода. React native - это платформа для разработки кроссплатформенных нативных приложений, которые работают как на Android, так и на iOS с использованием реакции и JavaScript. Прежде чем двигаться дальше, я надеюсь, что у вас есть базовые знания об этой структуре. Если так, то все готово. Итак, приступим.
В этом блоге я расскажу, как получить доступ к местоположению устройства с помощью собственных API-интерфейсов React.
Во-первых, в VS Code создайте новое приложение. Я использую следующую команду для запуска своего проекта:
разрешение на выполнение для запуска init-native
Я создал новую папку с именем src в корневом местоположении и создал файл App.js внутри папки src, удалив App.js из корневого местоположения. Измените расположение компонента App в файле index.js. Помните: index.js - это точка входа в любое приложение.
Теперь наш основной код находится в App.js. Я не создаю отдельные файлы js для разрешения местоположения во время выполнения. Вы можете это сделать, если хотите.
В файле манифеста укажите разрешения для местоположений:
‹Использует-разрешение android: name =” android.permission.ACCESS_FINE_LOCATION ”/›
‹Использует-разрешение android: name =” android.permission.ACCESS_COARSE_LOCATION ”/›
Теперь мы находимся внутри нашего компонента приложения.
Этот компонент будет отображать простой JSX. Я создал объект состояния, содержащий ключ как locationStatus, ему присваивается начальное значение «denied», так как при первой загрузке приложение не имеет доступа к местоположению устройства. В нашем методе рендеринга мы просто отображаем locationStatus с помощью объекта состояния.
Существует API, доступный в пакете response-native, который называется PermissionsAndroid. Этот API используется для запроса у пользователя разрешений во время выполнения для доступа к определенным вещам, таким как местоположение, контакты, камера и т. Д. На устройствах до версии 23 Android SDK не было необходимости в разрешениях во время выполнения, если разрешения упомянутый в файле манифеста, что, очевидно, опасно для пользователя, который может потерять важную информацию в результате кражи.
Теперь в файле App.js импортируйте PermissionsAndroid из пакета response-native:
импортировать {PermissionsAndroid} из "react-native";
Теперь напишите асинхронную функцию для запроса разрешения на определение местоположения.
async checkLocationPermission () {
попробуйте {
предоставлено const = await PermissionsAndroid.request (PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION);
if (предоставлено === PermissionsAndroid.RESULTS.GRANTED) {
this.setState ({locationStatus: ’grant’})
} else {
console.log («Permission denied»)
}
}
поймать (ошибка) {
console.warn («Произошла ошибка при запросе разрешения на определение местоположения»);
}
}
Вызовите эту функцию из функции componentDidMount ().
async componentDidMount () {
await this.checkLocationPermission ();
}
Теперь эта функция будет вызываться асинхронно и ждет ответа от пользователя после того, как запрос был сделан. Когда доступ разрешен, он устанавливает locationStatus как предоставленный, а когда состояние изменяется, компонент выполняет повторный рендеринг, и новое состояние отображается на устройстве.
Ниже приведен полный код:
Ура! На этом мы закончили, надеюсь, вам понравился блог.
Для получения дополнительной информации о PermissionsAndroid API вы можете обратиться к официальной документации по реагированию на собственный код Facebook: https://facebook.github.io/react-native/docs/permissionsandroid
Ребята, не стесняйтесь комментировать, если у вас возникнут вопросы, и не забывайте делиться. Увидимся в следующий раз. Наслаждайтесь кодированием! :)