一 、 安装Cordova 开发环境 //用npm 命令全局安装 cordova,
npm install -g cordova
二、创建Cordova自定义插件
//plugman create --name 创建名称 --plugin_id 插件ID --plugin_version 插件版本号
plugman create --name ToastPlugin --plugin_id cordova-plugin-toast --plugin_version 0.1.2
在cordova项目目录下执行以上上命令,之后你的目录下多了一个ToastPlugin文件夹,
这时需要在src目录下创建android文件夹,并且在android目录下创建ToastPlugin.java类
或者用命令创建:plugman platform add --platform_name android
修改config.xml配置文件如下:
2、ToastPlugin.java修改:
package org.apache.cordova.toast;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaArgs;
import org.apache.cordova.CordovaPlugin;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
public class ToastPluginextends CordovaPlugin {
@Override public boolean execute(String action, String rawArgs, CallbackContext callbackContext) throws JSONException {
return super.execute(action, rawArgs, callbackContext); }
@Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext)throws JSONException {return super.execute(action, args, callbackContext); }
@Override public boolean execute(String action, CordovaArgs args, CallbackContext callbackContext)throws JSONException {if (action.equals("showToast")) {switch (args.getInt(1)) {case Toast.LENGTH_SHORT: Toast.makeText(cordova.getActivity(), args.getString(0), Toast.LENGTH_SHORT).show(); break; case Toast.LENGTH_LONG: Toast.makeText(cordova.getActivity(), args.getString(0), Toast.LENGTH_LONG).show(); break; default:break; }return true; }return false; }}
3、ToastPlugin.js修改:
var exec = require('cordova/exec');/** * ToastPlugin :是plugin.xml中配置的feature的nema * showToast: 是js中调用的方法名 */exports.showToast =function(arg0, success, error) { exec(success,error,"ToastPlugin","showToast", [arg0]);};
4、通过npm创建Mudule:
进入插件目录在控制台输入:
npm init
操作完成后插件目录会生成一个package.json文件。
还需要对package.json进行Cordova信息进行补全:
{"name":"ToastPlugin","version":"0.1.2","description":"这是一个Cordova的Toast插件","cordova": {"id":"cordova-plugin-toast","platforms": ["android" ] },"main":"index.js","scripts": {"test":"echo \"Error: no test specified\" && exit 1" },"author":"BoBo","license":"ISC"}
三、将插件添加到工程中
进入Android平台的目录:platforms/android
执行命令:cordova plugin add C: /Users/BoBo/Documents/ToastPlugin
四、js调用自定义插件
cordova.plugins.ToastPlugin.coolMethod("参数", function (msg) { alert(msg);}, function (e) { alert(e);});
cordova.plugins.ToastPlugin对应plugin.xml文件中clobbers的target值。
五、备注
查看已安装的插件:cordova plugin ls
删除插件:cordova plugin rm cordova.plugin.ToastPlugin