Cordova中操作自定义插件上传自定义插件时会用到plugman 本章节讲述plugman的安装以及使用
1.plugman简介
一个命令行工具,用于安装和卸载Apache Cordova项目的插件
官方地址:https://www.npmjs.com/package/plugman#requirements
2.安装plugman(已成功配置好node.js和cordova)
在cmd中输入npm install -g plugman 等待
有时可能由于网络原因会失败,多尝试几次就好(本人尝试了两次才安装成功)
3.安装成功后就可以使用plugman命令生成Cordova插件模板
cmd中定位到你要生成插件的位置 cmd中输入
plugman create --name <pluginName> --plugin_id <pluginID> --plugin_version <version> [--path <directory>] [--variableNAME=VALUE]
参数:
pluginName: 插件名字
pluginID: 插件id
oversion: 插件版本
directory:一个绝对或相对路径的目录,该目录将创建插件项目
variable NAME=VALUE: 额外的描述,如作者信息和相关描述
3.1.先定位到插件存放的地方(本人存在D:\Cordova\CordovaPlugin)
3.2.继续在3.1的基础上生成插件模板
cmd中输入 plugman create --name PluginDemo --plugin_id org.apache.plugindemo --plugin_version 1.0.0
此时对应的文件夹下
3.3.继续在3.2基础上定位到插件位置 增加platform平台(此处以Android为例)
cmd中输入plugman platform add --platform_name android
此时上述的src文件夹下就有东西了
3.4.生成package.json文件
此文件plugman默认没有给生成 可以上传插件时要用到 所以要生成
格式 plugman createpackagejson XXXXX(你自己插件所在的位置)
继续在3.2基础上定位到插件位置
cmd中输入 plugman createpackagejson D:\Cordova\CordovaPlugin\PluginDemo
然后按照提示填写信息
完成后 文件夹
4.两个重要的文件
4.1.plugin.xml 文件
<?xml version='1.0' encoding='utf-8'?>
<plugin id="org.apache.plugindemo" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>PluginDemo</name>
<js-module name="PluginDemo" src="www/PluginDemo.js">
<clobbers target="cordova.plugins.PluginDemo" />
</js-module>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="PluginDemo">
<param name="android-package" value="org.apache.plugindemo.PluginDemo" />
</feature>
</config-file>
<config-file parent="/*" target="AndroidManifest.xml">
</config-file>
<source-file src="src/android/PluginDemo.java" target-dir="src/org/apache/plugindemo/PluginDemo" />
</platform>
</plugin>
这里有几个定义,最好理解一下:
1.clobbers : 非常重要。前端工程师在使用的时候通过这个 clobbers 去调用www/PluginDemo.js的公开方法
2.feature 标签定义了 (服务名)name
3.param name="android-package" value="org.apache.plugindemo.PluginDemo"
定义Android平台下的底层实现的 包名.类 :org.apache.plugindemo.PluginDemo
4.2.package.json文件
{
"name": "PluginDemo",
"version": "1.0.0",
"description": "This is a plugin",
"cordova": {
"id": "org.apache.plugindemo",
"platforms": [
"android"
]
},
"repository": {
"type": "git",
"url": "git+https://github.com/wujianning/NumPlugin.git"
},
"keywords": [
"ecosystem:cordova",
"cordova-android"
],
"author": "wjn",
"license": "Apache 2.0",
"bugs": {
"url": "https://github.com/wujianning/NumPlugin/issues"
},
"homepage": "https://github.com/wujianning/NumPlugin#readme"
}