Android Cordova自定义插件开发

一 、 安装Cordova 开发环境

1、Cordova命令行开发工具使用npm工具包,

    全局安装plugman:

npm install -g cordova
二、创建Cordova自定义插件

进入Cordova工程目录,执行创建插件命令:

plugman create --name 创建名称 --plugin_id 插件ID --plugin_version 插件版本号
plugman create --name ToastPlugin --plugin_id cordova-plugin-toast --plugin_version 0.1.2
执行完命令之后你就会发现工程目录下多了一个ToastPlugin文件夹,ToastPlugin中有:

这时需要在src目录下创建android文件夹,并且在android目录下创建ToastPlugin.java类

也可以在插件目录下执行命令创建:

plugman platform add --platform_name android

创建完成后:


到这一部插件是创建成功了,但还需要对配置文件进行更改。

1、plugin.xml配置修改:

<?xml version='1.0' encoding='utf-8'?>
<plugin xmlns:android="http://schemas.android.com/apk/res/android"
    id="cordova-plugin-toast" version="0.1.2"
    xmlns="http://apache.org/cordova/ns/plugins/1.0">

    <name>ToastPlugin</name>

    <js-module name="ToastPlugin" src="www/ToastPlugin.js">
        <clobbers target="cordova.plugins.ToastPlugin" />
    </js-module>

    <!-- 平台类型 -->
    <platform name="android">
        <config-file parent="/*" target="res/xml/config.xml">
            <!-- JS调用时的前缀名字 -->
            <feature name="ToastPlugin">
                <!-- .java类名全路径 -->
                <param name="android-package" value="org.apache.cordova.toast.ToastPlugin" />
            </feature>
        </config-file>
        <config-file parent="/*" target="AndroidManifest.xml"></config-file>
        
        <!-- src:java源文件的路径, target-dir:插件安装好后,源文件的位置,要和上面的包名对应 -->
        <source-file src="src/android/ToastPlugin.java" target-dir="src/org/apache/cordova/toast" />
    </platform>
</plugin>

这里添加了Android平台。

2、ToastPlugin.java修改:

package org.apache.cordova.toast;

import android.widget.Toast;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaArgs;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;

public class ToastPlugin extends 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 /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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值