如下全部操做的前提是:已经成功安装了Cordova的Android开发环境php
npm install plugman -g
plugman create --name <插件名称> --plugin_id <插件id> --plugin_version <插件版本>
plugman platform add --platform_name <平台名称>
plugman platform add --platform_name android
<?xml version='1.0' encoding='utf-8'?>
<!-- 定义了插件 ID,版本 -->
<plugin id="com.lben.cdv_plugin" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 定义了插件名称 -->
<name>CDVPlugin</name>
<!-- 指定到公共 JS 接口的路径 -->
<js-module name="CDVPlugin" src="www/CDVPlugin.js">
<!-- 定义了 JS 调用插件的方法 -->
<clobbers target="cordova.plugins.CDVPlugin" />
</js-module>
<platform name="android">
<!-- 指明插入到 config.xml 的位置,以使平台了解额外的插件代码库 -->
<config-file parent="/*" target="res/xml/config.xml">
<!-- 在 config.xml 插入的内容 -->
<feature name="CDVPlugin">
<param name="android-package" value="com.lben.cdv_plugin.CDVPlugin" />
</feature>
</config-file>
<!-- 指定使用此插件会加入到安卓 AndroidMainfest.xml 里面的权限项目 -->
<config-file parent="/*" target="AndroidManifest.xml"></config-file>
<!-- 指出插件本地代码的位置,以及插入到安卓平台源码的目录 -->
<source-file src="src/android/CDVPlugin.java" target-dir="src/com/lben/cdv_plugin/CDVPlugin" />
</platform>
</plugin>
复制代码
var exec = require('cordova/exec');
var mTest = function (_msg, _fnSucc, _fnFail) {
/* 参数说明 * param1 -> 成功回调 * param2 -> 失败回调 * param3 -> 插件源码库类名 * param4 -> 插件源码库方法名 * param5 -> 插件源码库所需额外参数 */
exec(_fnSucc, _fnFail, "CDVPlugin", "mTest", [_msg])
}
exports.mTest = mTest;
复制代码
// 等于插件 ID
package com.lben.cdv_plugin;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
// 继承 CordovaPlugin
public class CDVPlugin extends CordovaPlugin {
// 重写 execute 方法
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
switch (action) {
case "mTest":
String message = args.getString(0);
this.mTest(message, callbackContext);
return true;
default:
return false;
}
}
private void mTest(String message, CallbackContext callbackContext) {
if (message != null && message.length() > 0) {
callbackContext.success("调用成功:" + message);
} else {
callbackContext.error("调用失败:未能检测到有效参数。");
}
}
}
复制代码
npm init
cordova plugin add <插件路径>
cordova plugin add D:\Adocuments\CDVPlugin
CallPlugin: function () {
try {
// 调用方式在插件的 plugin.xml 已作配置
cordova.plugins.CDVPlugin.mTest("测试插件1", _res => {
alert("调用成功:" + _res);
}, _err => {
alert("调用失败:" + _err);
})
} catch (_e) {
alert(JSON.stringify(_e, "\n", 4));
}
}
复制代码