React native React本机应用程序:未授权使用位置服务
我目前正在做一个使用手机地理定位服务的项目。 我目前有一个关于这项服务的序言,它说地理定位是未经授权的 我试着上网,有几个人也有同样的问题,但我没能解决React native React本机应用程序:未授权使用位置服务,react-native,google-maps-api-3,geolocation,React Native,Google Maps Api 3,Geolocation,我目前正在做一个使用手机地理定位服务的项目。 我目前有一个关于这项服务的序言,它说地理定位是未经授权的 我试着上网,有几个人也有同样的问题,但我没能解决 componentDidMount() { const { coordinate } = this.state; this.requestCameraPermission(); this.watchID = navigator.geolocation.watchPosition( position =
componentDidMount() {
const { coordinate } = this.state;
this.requestCameraPermission();
this.watchID = navigator.geolocation.watchPosition(
position => {
const { routeCoordinates, distanceTravelled } = this.state;
const { latitude, longitude } = position.coords;
const newCoordinate = {
latitude,
longitude
};
console.log({ newCoordinate });
coordinate.timing(newCoordinate).start();
this.setState({
latitude,
longitude,
routeCoordinates: routeCoordinates.concat([newCoordinate]),
distanceTravelled:
distanceTravelled + this.calcDistance(newCoordinate),
prevLatLng: newCoordinate
});
},
error => console.log(error),
{
enableHighAccuracy: true,
timeout: 20000,
maximumAge: 1000,
distanceFilter: 10
}
);
}
我没有出现在我现在的位置,而是在旧金山,这是地图上的默认位置。
函数navigator.geolocation.watchPosition获取错误:
代码:E_位置_未经授权,
消息:未授权使用位置服务,
watchId:1
我的手机是三星S9,位置服务已启用。。。所以我真的很好奇我现在遇到的问题。谢谢你的回答,我设法解决了我的问题,显然世博会出于某种原因不允许使用我的位置,所以我只是强迫它:
Location.requestPermissionsAsync();
如果您在手机上使用Expo客户端,请确保您已启用位置权限
如果您已经授予了该权限,请检查您的AndroidManifest.xml以获取
对于这些位置
import * as Permissions from 'expo-permissions';
await Permissions.askAsync(Permissions.LOCATION);
如果requestPermissionsAsync,则使用替代方法;无法工作。此答案只有两天,但您似乎没有检查文档,因为这两件事都已更改。权限被添加到各自的包中,并且在位置中,我们现在对前台位置和后台位置有单独的权限。请查收。顺便说一句,我来这里是为了找到这个问题的答案。对我来说,它是特定于设备的,因为在snack.expo.io和我的一台设备上,它工作正常,但在另一台设备上,它显示错误,并阻止位置访问,甚至没有提示我。