1.下載plugmanjava
npm install -g plugman
2.建立插件命令android
plugman create --name <pluginName> --plugin_id <pluginID> --plugin_version <version> [--path <directory>] [--variableNAME=VALUE]
參考例子ios
plugman create --name WoodyPlugin --plugin_id woodyPlugin --plugin_version 0.0.1
3.參數介紹:
pluginName: 插件名字
pluginID: 插件id : woodyPlugin
oversion: 版本 : 0.0.1
directory:一個絕對或相對路徑的目錄,該目錄將建立插件項目
variable NAME=VALUE: 額外的描述,如做者信息和相關描述apache
4.生成插件的文件目錄npm
5.根據在不一樣平臺(ios,android,winphone)開發,通常在src目錄上建立不一樣平臺的文件夾,下面以android項目舉例子,在src下建立一個android目錄和一個空Test.java類json
6.plugin.xml的配置ide
打開plugin.xml你會看到以下已經生成的配置ui
<?xml version='1.0' encoding='utf-8'?> <plugin id="woodyPlugin" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android"> <name>WoodyPlugin</name> <js-module name="WoodyPlugin" src="www/WoodyPlugin.js"> <clobbers target="cordova.plugins.WoodyPlugin" /> </js-module> </plugin>
參數介紹:this
id: 插件的id
version: 插件的版本
name: 插件的名字
clobbers: 這個是js代碼調用原生代碼的引用spa
7.WoodyPlugin.js的配置
打開WoodyPlugin.xml你會看到以下已經生成的配置
var exec = require('cordova/exec'); exports.woodyMethod = function(arg0, success, error) { exec(success, error, "WoodyPlugin", "woodyMethod", [arg0]); };
8.完整plugin.xml和WoodyPlugin.js
plugin.xml
<?xml version='1.0' encoding='utf-8'?> <plugin id="woodyPlugin" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android"> <name>WoodyPlugin</name> <js-module name="WoodyPlugin" src="www/WoodyPlugin.js"> <clobbers target="woody.plugins.WoodyPlugin" /> </js-module> <platform name="android"> <source-file src="src/android/Test.java" target-dir="src/com/woody/plugins"/> <config-file target="res/xml/config.xml" parent="/*"> <feature name="Test"> <param name="android-package" value="com.woody.plugins.Test"/> </feature> </config-file> </platform> </plugin>
WoodyPlugin.js
var exec = require('cordova/exec'); exports.woodyMethod = function(arg0, success, error) { exec(success, error, "WoodyPlugin", "woodyMethod", [arg0]); };
看到plugin.xml在以前的基礎上新加了<platform>節點.其中feature對應着WoodyPlugin.js中exec(success, error, "WoodyPlugin", "woodyMethod", [arg0]);第3個參數,這個兩處的參數必須一致,否則插件調用不起來,exports.woodyMethod和第4個參數也必須一致,這個是調用原生代碼中的方法.
9.插件的安裝
個人插件所在的路徑是D:WoodyPlugin
首先切換到本身建立android工程的目錄 cd YourProjectName
執行插件安裝命令 cordova plugin add D:WoodyPlugin
執行完以後你就發現插件已經安裝上去了
若是你想卸載插件的話,執行cordova plugin remove 你的plugin_id
cordova plugin remove WoodyPlugin
10.完善Test.java插件類
import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; import org.json.JSONArray; import org.json.JSONException; public class Test extends CordovaPlugin{ private CallbackContext mCallbackContext; @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { this.mCallbackContext = callbackContext; if("woodyMethod".equals(action)){ String msg = args.getString(0); callbackContext.success("success"+msg); return true; } mCallbackContext.error("error"); return false; } }
if(「woodyMethod」.equals(action))中的woodyMethod對應WoodyPlugin.js中的exports.woodyMethod和exec方法的第4個參數
11.在js中如何調用
找到cordova_plugins.js文件,在該文件中找到你建立插件clobbers的屬性,以個人插件爲例,clobbers是woody.plugins.WoodyPlugin。
在js調用時就能夠按照以下命令調用
woody.plugins.WoodyPlugin.woodyMethod('Hello woody!',function(msg){ alert(msg); },function(msg){ alet(msg); })