每个平台的config.xml中的特定cordova挂钩

时间:2015-10-07 23:44:18

标签: node.js cordova hook config platform

我试图使用每个pratform运行特定的nodejs脚本。 在文档中,它说可以为每个平台设置一个钩子:

https://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html

如果我将挂钩放在平台标签的config.xml外部,则会调用脚本:

<hook type="before_platform_add" src="HookInstallPluginsWP8.js" />
<hook type="before_platform_add" src="HookInstallPluginsIOS.js" />

但是,如果我把它放在标签内,它就不会运行:

<platform name="wp8">
    <preference name="fullscreen" value="true"/>

    <hook type="before_platform_add" src="HookInstallPluginsWP8.js" />
</platform>

<platform name="ios">
    <preference name="fullscreen" value="true"/>

    <hook type="before_platform_add" src="HookInstallPluginsIOS.js" />
</platform>

我做错了什么?

2 个答案:

答案 0 :(得分:0)

直到Cordova 5.x,这似乎不受支持。你确定你在运行最新的Cordova吗?

npm install -g cordova

答案 1 :(得分:0)

我想我找到了这种情况发生的原因。 今天我尝试将<icons><splash>图片添加到我的项目中,我遇到了同样的情况。如果在平台标签内,则不会添加图标和启动。

在我的情况下,这种情况正在发生,因为在<platform>标记内,它只能存在一种类型的标记。

例如:

<platform name="android">
    <preference name="fullscreen" value="true"/>
    <hook type="before_platform_add" src="HookInstallPluginsAndroid.js" />
    <icon  src="res/icons/android/icon-36-ldpi.png density="ldpi" />
</platform>

在这种情况下,钩子和图标将被忽略。 我必须添加不同的<platform>个节点:

<platform name="android">
    <preference name="fullscreen" value="true"/>
</platform>
<platform name="android">
     <icon  src="res/icons/android/icon-36-ldpi.png density="ldpi" />
</platform>
<platform name="android">
    <hook type="before_platform_add" src="HookInstallPluginsAndroid.js" />
</platform>

这是一个记录在案的案例吗?我没有在cordova docs上找到任何东西......也许这只是一个虚假的情况?