使用cordova-plugin-geolocation时设置NSLocationWhenInUseUsageDescription值

时间:2015-11-10 19:05:04

标签: cordova cordova-plugins

我正在使用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的任何帮助。

3 个答案:

答案 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插件并使用

安装fork
cordova 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>