安装插件
npm install -g plugman
创建目录
plugman create --name EchoPlugin --plugin_id com.joker.cordova --plugin_version 1.0.0
创建成功后你将得到如下目录:
plugin.xml
内容
<?xml version='1.0' encoding='utf-8'?>
<plugin id="com.joker.cordova" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>EchoPlugin</name>
<js-module name="EchoPlugin" src="www/EchoPlugin.js">
<clobbers target="cordova.plugins.EchoPlugin" />
</js-module>
</plugin>
id
为plugman创建命令使用的--plugin_id
version
为创建命令使用的--plugin_version
添加android平台(插件)
cd EchoPlugin/
plugman platform add --platform_name android
执行后你将得到如下目录:
EchoPlugin为默认插件,该插件返回调用的字符串参数。
EchoPlugin.java
为继承CordovaPlugin
插件的类,主要内容如下
public class EchoPlugin extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("coolMethod")) {
String message = args.getString(0);
this.coolMethod(message, callbackContext);
return true;
}
return false;
}
private void coolMethod(String message, CallbackContext callbackContext) {
if (message != null && message.length() > 0) {
callbackContext.success(message);
} else {
callbackContext.error("Expected one non-empty string argument.");
}
}
}
核心方法execute
执行JS的调用
接收参数:
action
调用方法名,
args
调用方法传递的参数
callbackContext
异步回调函数,向JS返回执行结果
添加package.json
(插件安装需要)
添加后目录
package.json
内容
{
"name": "cordova-plugin-echo",
"version": "1.0.0",
"description": "A sample Apache Cordova application that responds to the deviceready event.",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Apache Cordova Team",
"license": "Apache-2.0",
"cordova": {
"id": "cordova-plugin-echo",
"platforms": [
"android"
]
}
}
文件内容根据自己使用调整
修改插件配置文件plugin.xml
plugin.xml
<?xml version='1.0' encoding='utf-8'?>
<plugin
id="cordova-plugin-echo"
version="1.0.0"
xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>EchoPlugin</name>
<js-module name="EchoPlugin" src="www/EchoPlugin.js">
<clobbers target="EchoPlugin" />
</js-module>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="EchoPlugin">
<param name="android-package" value="com.joker.cordova.EchoPlugin" />
</feature>
</config-file>
<config-file parent="/*" target="AndroidManifest.xml"></config-file>
<source-file src="src/android/EchoPlugin.java" target-dir="src/com/joker/cordova" />
</platform>
</plugin>
在Ionic中使用
安装插件
cordova plugin add /Users/joker/Workspace/ionic/cordova/EchoPlugin
插件调用
cordova run android
顺利的话在APP中可以看到alert的信息。