如何在config.xml中添加GeoLocation-Permissions

时间:2016-02-10 10:11:20

标签: android cordova android-permissions crosswalk

我想设置orroids权限以在config.xml中使用地理位置。

我不想使用cordova-plugin-geolocation ,这会将这些设置设置为副作用,因为我定位的网页浏览(人行横道)支持开箱即用的GeoLocation。插件只是臃肿软件。

我不想直接在AndroidManifest.xml 中编写它,因为我使用cordova prepare来阻止在我的存储库中包含任何特定于平台的内容。目前,每个人都可以从头开始构建平台,而不需要我们的git-repo提供任何特定于平台的内容。

我尝试了什么

我看了一下cordova-plugin-geolocation,看看他们将如何实现这一目标。

<platform name="android">
    <config-file target="AndroidManifest.xml" parent="/*">
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
      <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    </config-file>
</platform>

这将在我的构建阶段

中返回以下内容
Error: Command failed: /bin/sh -c cordova build android
/Users/sven/.../cordova/platforms/android/build/intermediates/res/armv7/debug/xml/config.xml:34: error: Error parsing XML: unbound prefix

我的下一步是什么

我不确定为什么“rob-from-cordova-plugin-geolocation&#39”-approach无法正常工作,但也许只是将上面的内容添加到新的插件中会有所帮助?值得一试吗?

2 个答案:

答案 0 :(得分:1)

您的错误是“未绑定的前缀”,您是否在“android:name”中提供了“android”前缀的定义?

查看cordova-plugin-geolocation plugin.xml,您可能需要将其添加到XML中:

xmlns:android="http://schemas.android.com/apk/res/android"

这样就定义了android命名空间。

答案 1 :(得分:0)

您可以直接从CLI的config.xml添加权限(以及许多其他额外的配置操作),方法是将插件cordova-custom-config添加到您的环境中。它将在您的应用程序中不添加任何内容,仅包含一组Cordova挂钩。

因此,只需在config.xml<config-file...)中添加XML浏览器,并在其答案中添加@SimonPrickett所说的内容。