React Native: как проверить, было ли предоставлено разрешение на геолокацию - PullRequest
0 голосов
/ 04 декабря 2018

Я знаю, что могу запросить разрешение на геолокацию на iOS с React Native следующим образом:

await navigator.geolocation.requestAuthorization()

Однако как узнать, предоставило ли пользователь разрешение или нет?Вышеприведенная функция ничего не возвращает.

Я бы не хотел использовать стороннюю библиотеку, просто чтобы сделать это, как в этом ответе: Определение, разрешено ли геолокации с помощью native native

Самая популярная сторонняя библиотека Permissions не обновлялась в течение 10 месяцев и не поддерживает последние версии React Native.

1 Ответ

0 голосов
/ 04 декабря 2018

Это все, что я мог понять: https://snack.expo.io/@zvona/geolocation-permissions

Итак, функция будет выглядеть следующим образом:

checkPermission = () => {
  navigator.geolocation
  .getCurrentPosition(
    () => this.setState({permission: 'GRANTED'}),
    () => this.setState({permission: 'DENIED'})
  );
}

Это может быть вызвано в каком-либо действии или, например, в componentDidMount.

А если вам нужно перенаправить пользователя, чтобы разрешить доступ к местоположению в настройках, см. Мой другой пример: https://snack.expo.io/@zvona/open-app-settings где строка кода:

Linking.openURL("app-settings:");

делает свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...