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" }