如下全部操做的前提是:已經成功安裝了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));
}
}
複製代碼