我可以从我的Cordova config.xml控制AndroidManifest.xml文件的<supports-screen>设置吗?

我希望在从Cordova CLI进行构build时能够控制AndroidManifest.xml文件中的“supports-screens”元素。

具体来说,我想在AndroidManifest.xml中控制以下元素:

<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> 

理想情况下,我希望在Cordova的config.xml文件中有一个设置可以让我直接控制支持的屏幕尺寸。

我已经尝试用像下面这样的config.xml设置来瞎搞:

 <platform name="android"> <supports-screen xlargeScreens="false"/> </platform> 

我认识到,我可以在我的源代码控制中存储一个自定义的AndroidManfiest.xml文件,并简单地使用Cordova钩子复制它,但这样做感觉有点笨拙,我担心将来调整config.xml文件可能会不要把它放到AndroidManifest.xml中,因为我们忘记了在after_prepare挂钩期间覆盖生成的文件。

我问的是使用Cordova CLI吗? 如果是这样,一个config.xml的样本来实现这一点,将不胜感激。

Solutions Collecting From Web of "我可以从我的Cordova config.xml控制AndroidManifest.xml文件的<supports-screen>设置吗?"

由于最新的cordova> 6.3版本发生了这种变化 ,我们应该可以使用新的edit-config标签来编辑Android Manifest.mf文件,如下所示:

 <edit-config file="AndroidManifest.xml" target="/manifest/supports-screens" mode="merge"> <supports-screens android:resizeable=["true"| "false"] android:smallScreens=["true" | "false"] android:normalScreens=["true" | "false"] android:largeScreens=["true" | "false"] android:xlargeScreens=["true" | "false"] android:anyDensity=["true" | "false"] android:requiresSmallestWidthDp="integer" android:compatibleWidthLimitDp="integer" android:largestWidthLimitDp="integer"/> </edit-config> 

此外,您还需要在config.xml中的widget元素中添加xmlns:android="http://schemas.android.com/apk/res/android"

更多信息在那里和那里

据我所知,钩子是做到这一点的方法。 yeoman标志性的框架生成器有一个很好的例子,它可以把许多android特定的标签复制到生成的config.xml中。 从这个光滑的离子发生器 在这里看到这个文件 。

代码中的Config.xml示例( https://github.com/diegonetto/generator-ionic/blob/master/templates/hooks/after_prepare/update_platform_config.js ):

 <config-file target="AndroidManifest.xml" parent="/*> <supports-screens android:xlargeScreens="false" android:largeScreens="false" android:smallScreens="false" /> <uses-permission android:name="android.permission.READ_CONTACTS" android:maxSdkVersion="15" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> </config-file> 

钩子可以从钩子文件夹自动运行,这个特定的钩子将驻留在钩子/ after_prepare中,或者在configuration中作为<hook type="after_prepare" src="path/to/file/update_platform_config.js" />

有关钩子的更多文档可以在钩子自述文件中find: http : //cordova.apache.org/docs/en/dev/guide/appdev/hooks/index.html#Hooks%20Guide

编辑:更新生成器和cordova文档的git存储库。