根据您添加的cordova插件,一些<uses-permission>
条目会自动添加到AndroidManifest.xml。但是,我需要<uses-permission android:name="android.permission.INTERNET" />
权限,该权限不会自动添加。
我可以将它直接添加到AndroidManifest.xml,但是下次运行cordova build
时会被覆盖,我不想再继续添加它......
我确定有一个&#34; Cordova&#34;指定权限的方式(在config.xml或其他地方),但我在their documentation任何地方都没有看到它...
那么,&#34; Cordova方式&#34;是什么?指定用户权限?
答案 0 :(得分:45)
据我所知,每次运行cordova build
时都不会生成AndroidManifest.xml。添加/删除插件时,将相应地进行修改。但是,如果您添加自己的权限,则不会删除(除非存在冲突)。
由于权限是特定于Android(平台)的,因此您必须将其添加到 AndroidManifest.xml 文件中。
即使在任何插件的plugin.xml中,他们也会添加权限,如下所示:
<platform name="android">
<config-file target="AndroidManifest.xml" parent="/manifest">
<uses-permission android:name="android.permission.INTERNET"/>
</config-file>
</platform>
其中说在插件安装时将use-permission行添加到AndroidManifest.xml文件。但你不能在config.xml文件中提到这一点。
另外,请不要忘记将此属性放在根小部件元素中,如@hiddentao在评论中所述。
<强>的plugin.xml 强>
<widget
xmlns:android="http://schemas.android.com/apk/res/android"
...>
答案 1 :(得分:13)
可以添加此plugin(Git)。 它使您能够以下列方式在config.xml文件下定义特定于平台的配置(权限):
<platform name="android">
<custom-config-file target="AndroidManifest.xml" parent="/*">
<uses-permission android:name="android.permission.INTERNET" />
<!--<uses-permission android:name="android.permission.NETWORK_ACCESS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />-->
</custom-config-file>
</platform>
另外,请不要忘记将此属性放在根小部件元素中,如@hiddentao在评论中所述。
xmlns:android="http://schemas.android.com/apk/res/android"
答案 2 :(得分:8)
Cordova(版本8)具有built in functionality for this。
我能够使用以下命令向AndroidManifest.xml
添加所需的“ uses-permission”行:
<platform name="android">
...
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/uses-permission" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
</edit-config>
...
</platform>
答案 3 :(得分:-1)
在config-file标签下手动添加
'----------------------------------------------------------------------
' MoveFile
'
' Moves the file from FromFile to ToFile.
' Returns True if it was successful.
'----------------------------------------------------------------------
Public Function MoveFile(FromFile As String, ToFile As String) As Boolean
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
objFSO.MoveFile FromFile, ToFile
MoveFile = (Err.Number = 0)
Err.Clear
End Function