我很难获得权限,无法在RN上正确获取当前位置。
我真正想做的就是在拒绝或授予权限时获取回调,以便我可以分别请求我的当前位置。我使用以下方法请求许可:
geolocation.requestAuthorization();
它不返回承诺或接受回调,所以我要知道是否授予许可的唯一真实方法是反复调用
geolocation.getCurrentPosition();
并检查其内容
setInterval
几乎无法回答所有问题,因此我想寻找更好的方法。
答案 0 :(得分:0)
尝试类似的方法,它对我有用。
(async () => {
{ try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': 'Your App',
'message': 'Allow app to access your location '
}
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
Geolocation.getCurrentPosition(
(position) => {
console.log(position);
Geocoder.geocodePosition({lat: position.coords.latitude, lng: position.coords.longitude})
.then(res => {
this.setState({
locationResult: res[0].formattedAddress
});
})
},
(error) => {
// See error code charts below.
console.log(error.code, error.message);
},
{ enableHighAccuracy: true, timeout: 15000, maximumAge: 10000 }
);
} else {
alert("Location permission denied");
}
} catch (err) {
console.log("No Access to location" + err);
}
}
})();
状态中的locationResult将保存地址详细信息。