React Native: не удается получить доступ к местоположению с помощью geolocation API



Не фактический скриншот кода. Но ошибка та же самая
Ошибка: похоже, что приложение не имеет разрешения на доступ к местоположению. Добавьте следующую строку в приложение AndroidManifest.xml



Несмотря на то, что я добавил разрешения в манифест.xml и запрашивать разрешения среды выполнения я не могу получить доступ к GPS.



Мой Андроидманифест.xml



<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.location">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
.....
.....


Полный код:



import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View,
PermissionsAndroid } from 'react-native';

export default class App extends Component {
async requestLocationPermission() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': 'Location Access Permission',
'message': 'Expensify would like to use your location ' +
'so you we track you.'
}
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("You can use the location")
} else {
console.log("Location permission denied")
}
} catch (err) {
console.warn(err)
}
}
componentDidMount() {
console.log("compdidmount");
this.requestLocationPermission();
//Crashes here on getCurrentPosition
navigator.geolocation.getCurrentPosition(
(position) => {
console.log(position.coords.latitude);
},
(error) => {
console.log(error)
},
{enableHighAccuracy: true, timeout: 20000, maximumAge: 10000}
);
}
render() {
return (
<View style>
<Text style>
Tracking App
</Text>
</View>
);
}
}
710   2  

2 ответов:

Я получил ту же проблему с CameraRoll. Я исправил этот запрос разрешения при запуске приложения. Вы должны использовать это:

import { PermissionsAndroid } from 'react-native';

async function requestCameraPermission() {
  try {
    const granted = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
      {
        'title': 'Location Permission',
        'message': 'Location Permission' +
                   'so you can use GPS location.'
      }
    )
    if (granted === PermissionsAndroid.RESULTS.GRANTED) {
      console.log("You can use GPS")
    } else {
      console.log("GPS location denied")
    }
  } catch (err) {
    console.warn(err)
  }
}

Я решил эту проблему, удалив и переустановив приложение .

Comments

    Ничего не найдено.