gpt4 book ai didi

javascript - iOS 上的位置权限在 react native 中不起作用

转载 作者:行者123 更新时间:2023-12-01 00:49:20 25 4
gpt4 key购买 nike

iOS 应用程序中没有弹出位置权限,也无法在应用程序的设置中看到权限选项

在 Android 上运行良好。因为我可以使用 PermissionsAndroid 来获取权限。

通过查看其他答案,已经在 info.plist 中使用了以下选项。很少有答案只提到Android。

info.plist

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Location Permission</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Location Permission</string>
<key>NSLocationUsageDescription</key>
<string>GPS data is required to...</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Location Permission</string>

codeinthefile.js

try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
title: "Geolocation Permission",
message: "App needs access to your phone's location.",
}
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
Geolocation.getCurrentPosition(
position => {
Geocoder.from({
latitude: position.coords.latitude,
longitude: position.coords.longitude,
})
.then(json => {
console.log(json);
})
.catch(error => {
console.log(error);
});
},
error => {
console.log(error);
},
{ enableHighAccuracy: true, timeout: 15000, maximumAge: 10000 }
);
} else {
console.log('Location permission not granted!);
}
} catch (err) {
console.log('Location permission not granted!)
}

如果通过在 info.plist 中使用上述值,我应该获得对位置的访问权限,那么就不应该出现未授予权限的错误。

最佳答案

iOS中不要使用PermissionAndroid,将权限需求放在info.plist中就足够了,

尝试类似的事情,

if(Platform.OS === "ios"){
// your code using Geolocation and asking for authorisation with

geolocation.requestAuthorization()
}else{
// ask for PermissionAndroid as written in your code
}

关于javascript - iOS 上的位置权限在 react native 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57114239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com