我正在使用Cordova构建移动应用。我使用cordova-plugin-geolocation
来获取用户的当前位置。要在iOS上自定义位置权限请求,需要设置NSLocationWhenInUseUsageDescription
plist值。
通常,要设置iOS plist选项,需要在platforms/ios/<app-name>/<app-name>-Info.plist
中手动设置选项值。问题是,在每次构建时,cordova-plugin-geolocation
会使用它的默认空字符串覆盖自定义值。
猜测它与plugins/cordova-plugin-geolocation/plugin.xml
中的以下行有关:
<config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
<string></string>
</config-file>
但是,如果我尝试将任何值设置为<string>
,则不会受到尊重,因为在安装插件时似乎plugin.xml
被缓存了。
因此,我们非常感谢您以一种在项目重建过程中持续存在的方式设置NSLocationWhenInUseUsageDescription
的任何帮助。
答案 0 :(得分:6)
新答案:
如果使用Cordova CLI 6.5.0或更新版本的cordova-plugin-geolocation
(&gt; = 3.0.0),您应该在edit-config
中使用config.xml
标记,如下所示:< / p>
<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
<string>your custom text here</string>
</edit-config>
陈旧的答案: fork github插件
使用您想要的文字更改NSLocationWhenInUseUsageDescription
<config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
<string>your custom text here</string>
</config-file>
然后删除原始geolocation插件并使用
安装forkcordova plugin add https://github.com/yourUsername/yourGeolocationFork.git
答案 1 :(得分:1)
该插件的尚未发布(至npm)版本支持此功能。
https://github.com/apache/cordova-plugin-geolocation/commit/f9f7a23c57daad5514ce3d830a2defeb93ba3f78
您可以像这样安装:
cordova plugin add https://github.com/apache/cordova-plugin-geolocation#f9f7a23c57daad5514ce3d830a2defeb93ba3f78 --save --variable GEOLOCATION_USAGE_DESCRIPTION="Your text here"
答案 2 :(得分:0)
通过Phonegap构建,接受的答案对我不起作用。以下适用于我:
<gap:config-file overwrite="true" parent="NSLocationWhenInUseUsageDescription" platform="ios">
<string> your custom text here</string>
</gap:config-file>