使用 Plugman 管理插件
从 3.0 版本开始,Cordova 将所有设备 API 作为插件实现,并且默认情况下禁用它们。它还支持两种不同的方式来添加和删除插件,具体取决于您在 概述中讨论的工作流程选择。
-
如果您使用跨平台工作流程,则可以使用
cordova
CLI 实用程序来添加插件,如 命令行界面中所述。CLI 一次性修改所有指定平台的插件。 -
如果您使用以平台为中心的工作流程,则需要为每个目标平台单独使用较低级别的 Plugman 命令行界面。
本节详细介绍了 Plugman 实用程序。有关将 Plugman 作为 node 模块使用或修改源代码的更多信息,请参阅 其存储库中的 README 文件。
安装 Plugman
要安装 plugman,您的机器上必须安装 node。然后,您可以在环境中的任何位置运行以下命令以全局安装 plugman,以便它可以从任何目录中使用
$ npm install -g plugman
您还必须在 PATH
中有 git
才能直接从远程 git URL 安装插件。
提示:如果您发现使用 npm
安装 plugman 后仍然无法运行任何 plugman
命令,请确保已将 /npm/
目录添加到您的 PATH
中。
注意:如果您不想通过全局安装 Plugman 来污染您的全局 npm
命名空间,则可以跳过此步骤。如果属于这种情况,那么当您使用 shell 工具创建 Cordova 项目时,您的项目内部将有一个包含 Plugman 的 node_modules
目录。由于您没有全局安装,因此您需要为每个 Plugman 命令调用 node
,例如 node ./node_modules/plugman/main.js -version
。本指南的其余部分假设您已全局安装 Plugman,这意味着您可以使用 plugman
直接调用它。
创建 Cordova 项目
在可以使用 Plugman 之前,您必须创建一个 Cordova 项目。您可以使用命令行界面或较低级别的 shell 脚本来完成此操作。有关使用 shell 脚本创建项目的说明,请参阅平台指南页面上列出的各种“命令行工具”指南。
添加插件
安装 Plugman 并创建 Cordova 项目后,您可以使用以下命令开始向平台添加插件
$ plugman install --platform <ios|android> --project <directory> --plugin <name|url|path> [--plugins_dir <directory>] [--www <directory>] [--variable <name>=<value> [--variable <name>=<value> ...]]
使用最少的参数,此命令会将插件安装到 cordova 项目中。您必须为该平台指定一个平台和 cordova 项目位置。您还必须指定一个插件,具有不同的 --plugin
参数形式,即
name
:插件内容所在的目录名称。这必须是--plugins_dir
路径下的现有目录(有关详细信息,请参见下文)或 Cordova 注册表中的插件。url
:以 https:// 或 git:// 开头的 URL,指向可克隆且包含plugin.xml
文件的有效 git 存储库。此存储库的内容将复制到--plugins_dir
中。path
:包含有效插件(包括plugin.xml
文件)的目录的路径。此路径的内容将复制到--plugins_dir
中。
其他参数
--plugins_dir
默认为<project>/cordova/plugins
,但可以是包含每个已获取插件的子目录的任何目录。--www
默认为项目的www
文件夹位置,但可以是任何用作 cordova 项目应用程序 Web 资源的目录。--variable
允许在安装时指定某些变量,这对于某些需要 API 密钥或其他自定义用户定义参数的插件是必需的。有关更多信息,请参阅 插件规范。
删除插件
要卸载插件,您只需传递 uninstall
命令并提供插件 ID。
$ plugman uninstall --platform <ios|android> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]
帮助命令
Plugman 具有一个全局帮助命令,如果您遇到困难或遇到问题,可能会对您有所帮助。它将显示所有可用的 Plugman 命令及其语法的列表
plugman -help
plugman # same as above
注意:plugman -help
可能会显示一些其他与注册表相关的命令。这些命令适用于插件开发人员,可能不会在第三方插件注册表上实现。
您还可以将 --debug|-d
标志附加到任何 Plugman 命令,以在详细模式下运行该命令,该模式将显示发出的任何内部调试消息,并可能帮助您跟踪缺少文件之类的问题。
# Adding Android battery-status plugin to "myProject":
plugman -d install --platform android --project myProject --plugin cordova-plugin-battery-status
最后,您可以使用 --version|-v
标志来查看您正在使用的 Plugman 版本。
plugman -v
注册表操作
有许多 plugman 命令可用于与 插件注册表进行交互。请注意,这些注册表命令特定于 plugins.cordova.io 插件注册表,并且可能不会由第三方插件注册表实现。
搜索插件
您可以使用 Plugman 在 插件注册表中搜索与给定的以空格分隔的关键字列表匹配的插件 ID。
plugman search <plugin keywords>
更改插件注册表
您可以获取或设置 plugman 当前正在使用的插件注册表的 URL。通常,您应该将其设置为 http://registry.cordova.io,除非您想使用第三方插件注册表。
plugman config set registry <url-to-registry>
plugman config get registry
获取插件信息
您可以使用以下命令获取有关插件存储库中存储的任何特定插件的信息
plugman info <id>
这将联系插件注册表并获取插件的版本号等信息。
安装核心插件
以下示例显示了如何根据需要添加插件,以便在您升级到 3.0 版本后,项目中使用的任何 Cordova API 仍然可以工作。对于每个命令,您需要选择目标平台,并引用该平台的项目目录。
-
cordova-plugin-battery-status
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-battery-status
-
cordova-plugin-camera
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-camera
-
cordova-plugin-console
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-console
-
cordova-plugin-contacts
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-contacts
-
cordova-plugin-device
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-device
-
cordova-plugin-device-motion(加速度计)
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-device-motion
-
cordova-plugin-device-orientation(罗盘)
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-device-orientation
-
cordova-plugin-dialogs
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-dialogs
-
cordova-plugin-file
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-file
-
cordova-plugin-file-transfer
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-file-transfer
-
cordova-plugin-geolocation
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-geolocation
-
cordova-plugin-globalization
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-globalization
-
cordova-plugin-inappbrowser
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-inappbrowser
-
cordova-plugin-media
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-media
-
cordova-plugin-media-capture
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-media-capture
-
cordova-plugin-network-information
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-network-information
-
cordova-plugin-splashscreen
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-splashscreen
-
cordova-plugin-vibration
plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-vibration