看起来PhoneGap有一个config.xml设置来更新项目中的plist键,将Geolocation插件的权限从“使用中”设置为“始终”,如果我手动设置项目的.plist文件的键, NSLocationAlwaysUsageDescription
而不是插件的默认NSLocationWhenInUseUsageDescription
它设置了正确的权限,但是如何告诉插件请求Always权限而无需深入了解platforms / ios / * .plist文件?看起来插件代码有一个检查以查看要设置的权限,但我无法弄清楚如何请求它使用JavaScript API提示用户获得正确的权限。
请参阅:https://github.com/apache/cordova-plugin-geolocation/blob/master/src/ios/CDVLocation.m#L130
答案 0 :(得分:1)
转到platform / ios / ios.json 找到以下内容:
"*-Info.plist": {
"parents": {
"NSLocationWhenInUseUsageDescription": [
{
"xml": "<string />",
"count": 1
}
]
}
}
将“NSLocationWhenInUseUsageDescription”替换为“NSLocationAlwaysUsageDescription” 所以看起来如下:
"*-Info.plist": {
"parents": {
"NSLocationAlwaysUsageDescription": [
{
"xml": "<string />",
"count": 1
}
]
}
}
运行“cordova build ios”