从事基于cordova开发混合APP也快一年了,一直没有自己“亲自操刀”写一个插件,因为网上插件太丰富了,可耻了。
今天完整的记录一次插件开发。
cordova环境6.4.0
npm install -g plugman
plugman create --name <pluginName> --plugin_id <pluginID> --plugin_version <version> [--path <directory>] [--variableNAME=VALUE]
plugman create --name TestDialog --plugin_id com.testadialog --plugin_version 0.0.1
创建好了以后 进入 该文件夹
然后该文件里面会自动帮我们创建好一系列文件
test-plugin-dialog
如下目录结构
-src
---android
-----TestDialog.java
-www
---TestDialog.js
-plugin.xml
如图:
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="com.testa_dialog" version="0.0.1"> <name>TestDialog</name> //存放js接口文件 <js-module name="TestDialog" src="www/TestDialog.js"> <clobbers target="cordova.plugins.TestDialog"/> </js-module> //对应插件的平台 <platform name="android"> <config-file parent="/*" target="res/xml/config.xml"> <feature name="TestDialog"> <param name="android-package" value="com.testa_dialog.TestDialog"/> </feature> </config-file> <config-file parent="/*" target="AndroidManifest.xml"/> <source-file src="src/android/TestDialog.java" target-dir="src/com/testa_dialog/TestDialog"/> </platform> </plugin>
cordova plugin add ./TestDialog
图中的id对应是JS 接口文件中的cordova.define()中的一个参数;如下所示
cordova.define("com.testadialog.TestDialog", function(require, exports, module) {
var exec = require(‘cordova/exec‘);
exports.coolMethod = function(arg0, success, error) {
exec(success, error, "TestDialog", "coolMethod", [arg0]);
};
});
clobbers中的cordova.plugins.TestDialog是js 全局变量,配合你的js插件接口使用。
在你的js文件中,如果需要调用coolMethod方法,即:
cordova.plugins.TestDialog.coolMethod()//调用该方法
原文:http://www.cnblogs.com/niunai007/p/7020559.html