我使用PhoneGap Build制作了一个WEB应用程序(Android APK)。它只是一个简单的1页应用程序,其中只有文本和一些小的图形属性。我将其上传到Play Store。现在当用户下载该应用程序时,他被要求允许应用程序的所有可能权限。我还没有找到如何在PhoneGap Build上控制权限。
我的应用程序不需要特殊权限,我想在下一个更新中排除它们。我该怎么解决这个问题?
我使用PhoneGap Build制作了一个WEB应用程序(Android APK)。它只是一个简单的1页应用程序,其中只有文本和一些小的图形属性。我将其上传到Play Store。现在当用户下载该应用程序时,他被要求允许应用程序的所有可能权限。我还没有找到如何在PhoneGap Build上控制权限。
我的应用程序不需要特殊权限,我想在下一个更新中排除它们。我该怎么解决这个问题?
为了防止插件重新添加不必要的权限,请编辑plugins/android.json文件。
请注意,这是一种“肮脏”的解决方案。在添加/更新插件后,您可能需要重复此操作。
在当前版本的PhoneGap Build中,这对我有效,在config.xml文件内。请注意xmlns条目:
<?xml version='1.0' encoding='utf-8'?>
<widget id="it.letturedametropolitana.ldmapp" version="0.1.0"
xmlns="http://www.w3.org/ns/widgets"
xmlns:gap="http://phonegap.com/ns/1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<gap:config-file platform="android" parent="/manifest" mode="delete">
<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"/>
<uses-permission android:name="android.permission.CAMERA"/>
[add any permission you want to delete]
</gap:config-file>
要知道要删除什么以及如何删除,您需要使用apktool打开已打包的apk并检查AndroidManifest.xml文件:精确复制您需要删除的内容。
所有内容都在文档中有详细说明,尽管当前版本的文档没有使用gap命名空间,并且在我的测试中无法正常工作。
从AndroidManifest.xml中删除不必要的uses-permissions。
同时,从res/xml/config.xml中删除不必要的features可能也很有用。
我曾经遇到过同样的问题,帮助我删除不必要的权限的方法是从我的config.xml中删除这段代码。
<gap:plugin name="org.apache.cordova.console" />
<gap:plugin name="org.apache.cordova.device" />
<gap:plugin name="org.apache.cordova.device-motion" />
<gap:plugin name="org.apache.cordova.device-orientation" />
<gap:plugin name="org.apache.cordova.dialogs" />
<gap:plugin name="org.apache.cordova.file" />
<gap:plugin name="org.apache.cordova.file-transfer" />
<gap:plugin name="org.apache.cordova.globalization" />
<gap:plugin name="org.apache.cordova.media" />
并将其替换为
<feature name="http://api.phonegap.com/1.0/network"/>
<gap:plugin name="org.apache.cordova.inappbrowser" />
<gap:plugin name="org.apache.cordova.network-information" />
<gap:plugin name="org.apache.cordova.splashscreen" />
这样可以让我的应用程序仅具有访问互联网的权限,并删除其他权限。希望这可以帮到您。