我可以从我的 Cordova config.xml 控制 AndroidManifest.xml 文件的 <supports-screen> 设置吗?
Can I control the <supports-screen> setting of an AndroidManifest.xml file from my Cordova config.xml?
我希望在从 Cordova CLI 进行构建时能够控制 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 实现此目标的示例。
据我所知,钩子是实现这一点的方法。 yeoman iconic framework generator 有一个很好的例子,它可以获取许多 android 特定标签并将它们复制到生成的 config.xml。参见 this file here from this slick ionic generator。
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>
挂钩可以自动 运行 从 hooks 文件夹中,这个特定的挂钩将驻留在 hooks/after_prepare 中,或者在配置中作为 <hook type="after_prepare" src="path/to/file/update_platform_config.js" />
有关钩子的更多文档可以在钩子自述文件中找到:http://cordova.apache.org/docs/en/dev/guide/appdev/hooks/index.html#Hooks%20Guide
编辑:更新 git 生成器和 cordova 文档的存储库。
从 this change in the latest cordova > 6.3 versions 开始,我们应该可以使用新的 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>
您还需要将 xmlns:android="http://schemas.android.com/apk/res/android"
添加到 config.xml 中的小部件元素。
我希望在从 Cordova CLI 进行构建时能够控制 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 实现此目标的示例。
据我所知,钩子是实现这一点的方法。 yeoman iconic framework generator 有一个很好的例子,它可以获取许多 android 特定标签并将它们复制到生成的 config.xml。参见 this file here from this slick ionic generator。
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>
挂钩可以自动 运行 从 hooks 文件夹中,这个特定的挂钩将驻留在 hooks/after_prepare 中,或者在配置中作为 <hook type="after_prepare" src="path/to/file/update_platform_config.js" />
有关钩子的更多文档可以在钩子自述文件中找到:http://cordova.apache.org/docs/en/dev/guide/appdev/hooks/index.html#Hooks%20Guide
编辑:更新 git 生成器和 cordova 文档的存储库。
从 this change in the latest cordova > 6.3 versions 开始,我们应该可以使用新的 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>
您还需要将 xmlns:android="http://schemas.android.com/apk/res/android"
添加到 config.xml 中的小部件元素。