如何在Phonegap中设置Android权限

3
我尝试在“项目根目录”/www/config.xml的末尾添加以下行(从先前安装的插件的plugin.xml中获取):
<platform name="android">
    <config-file target="AndroidManifest.xml" parent="/manifest">
        <uses-permission android:name="android.permission.INTERNET"/>
    </config-file>
</platform>

但是如预期的那样,这并不起作用。 我需要它用于InAppBrowser插件加载在线页面(我不想编辑它的plugin.xml,因为插件可能会被更新或重新安装 -> 更改将被擦除)。


您想设置哪些权限?INTERNET权限? - power_scriptor
我也必须做同样的事情。你找到如何向你的应用程序添加权限了吗? - Mimo
1
@mimo,正如power_scriptor(如果我没有把他和另一个用户混淆)在他已删除的答案中建议的那样,我直接在项目文件夹中的某个位置设置了清单文件的权限(不记得在哪里)。但是这个清单文件有时会被重置,所以它并不是非常可靠的方法。然而,我不知道更好的解决方案。 - janot
1
奇怪 - 在我看来这看起来完全没问题。你能告诉我你是如何操作的,例如添加插件,然后接下来是什么步骤吗?作为一个测试,你可以设置一个虚拟插件,它只有 plugin.xml 文件 - 和 just 这个标签(仍然在格式良好的 XML 文档中)。它不会破坏 cordova - cordova 只读取 plugin.xml 来将相关文件/文本插入到相应位置。 - keldar
2个回答

1

1)将android命名空间添加到<widget>标签中:xmlns:android="http://schemas.android.com/apk/res/android"

2)将以下内容添加到platform@name=android中:

<platform name="android">
    <config-file parent="/*" target="AndroidManifest.xml">
        <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    </config-file>
</platform>

3) 完成(当然,应用所需的权限)

您的AndroidManifest.xml文件将拥有所需的权限(即使删除平台文件夹):

    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
</manifest>

请注意:我正在使用Cordova 8(我猜<config-file>从7开始可用) - JCKödel

0

我认为问题可能是您正在编辑错误的文件。当您使用CLI创建新的cordova项目时,它会在这里为您放置一个配置文件“project_root/config.xml”。请检查是否在该位置有配置文件。如果有,则在该文件中进行更改,应该就可以解决问题了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接