Cordova 钩子

2024 年 8 月 29 日 | 阅读 3 分钟

我们可以将 Cordova 钩子定义为特殊的脚本,这些脚本允许用户使用 Cordova CLI 自动执行 Cordova 项目的基本功能。它是一段代码,可以由任何应用程序、插件开发人员甚至您自己的构建系统添加,以改进 Apache Cordova 应用程序的开发/部署生命周期。但是,这些代码脚本由 Cordova CLI 在 Cordova 应用程序构建的某些时刻执行,以自定义 Cordova 命令。

这些代码脚本可以在构建过程中运行多次。

我们可以将这些钩子与应用程序活动相关联,例如 before_build、after_build 等。此外,它可能与我们的应用程序插件相关联,例如 before_plugin_add、after_plugin_add, 等等。

通常,“hook” 文件夹位于我们项目的根文件夹中,其中包含不同的子文件夹,如 after_platform_add、after_build、before_platform_add、before_build 等。对于运行钩子脚本,它被使用。

支持的钩子类型如下

钩子类型相关的 Cordova 命令描述
before_platform_addcordova platform add在添加平台之前和之后,将执行此钩子类型。
after_platform_add
before_platform_rmcordova platform rm在删除平台之前和之后,将执行此钩子类型。
after_platform_rm
before_platform_lscordova platform ls在列出已安装和可用的平台之前和之后,将执行此钩子类型。
after_platform_ls
before_preparecordova prepare
cordova platform add
cordova build
cordova run
在准备您的应用程序之前和之后,将执行此钩子类型。
after_prepare
before_compilecordova compile
cordova build
在编译您的应用程序之前和之后,将执行此钩子类型。
after_compile
before_deploycordova emulate
cordova run
在部署您的应用程序之前,将执行此钩子类型。
before_buildcordova build在构建您的应用程序之前和之后,将执行此钩子类型。
after_build
before_emulatecordova emulate在模拟您的应用程序之前和之后,将执行此钩子类型。
after_emulate
before_runcordova run在运行您的应用程序之前和之后,将执行此钩子类型。
after_run
before_servecordova serve在提供您的应用程序之前和之后,将执行此钩子类型。
after_serve
before_cleancordova clean在清理您的应用程序之前和之后,将执行此钩子类型。
after_clean
before_plugin_addcordova plugin add在添加插件之前和之后,将执行此钩子类型。
after_plugin_add
before_plugin_rmcordova plugin rm在删除插件之前和之后,将执行此钩子类型。
after_plugin_rm
before_plugin_lscordova plugin ls在列出项目中的插件之前和之后,将执行此钩子类型。
after_plugin_ls
before_plugin_installcordova plugin add在为平台安装插件之前和之后,将执行此钩子类型。
after_plugin_install
before_plugin_uninstallcordova plugin rm在卸载插件之前,将执行此钩子类型。

定义钩子的方法

Config.xml

<hook> 元素用于在项目的 config.xml 文件中定义钩子,例如

插件钩子 (plugin.xml)

对于将钩子脚本定义为插件开发人员,我们需要在 plugin.xml 文件中使用 essential <hook> 元素

通过/hooks 目录 (已弃用)

为了执行与相应钩子类型触发时发生的任何自定义操作,我们需要使用钩子类型。此钩子类型用于“hooks”目录内的子文件夹。在这里,我们放置我们的脚本文件。对于指定的动作,这是必要的。

示例

请注意,您的脚本必须是可执行的。

钩子执行的顺序

基于钩子定义

可以通过将脚本添加到特殊的预定义文件夹(即配置文件 config.xml 和 plugin.xml,或 hooks)来定义钩子脚本。但是,您应该知道钩子的顺序是串行执行的。

基于内部执行顺序

我们可以修复钩子的内部执行顺序。

假设,如果钩子与 before_compile, after_compile, before_prepare, after_prepare, before_buildafter_build 相连,则构建命令将运行以按以下顺序执行钩子

before_build
      before_prepare
      after_prepare
      before_compile
      after_compile
after_build

下一主题Cordova 插件