Ionic开发自定义插件

时间:2021-10-22 22:15:13

1:安装plugman,在终端输入

npm install -g plugman

2:新建一个插件myEcho

plugman create --name 《Name》 --plugin_id 《pluginID》 --plugin_version 《version》
《Name》替换为 myEcho;
《pluginID》 替换为 com.lulee007.myEcho
《version》 替换为 0.0.1
在终端输入:plugman create --name myEcho --plugin_id com.lulee007.Echo --plugin_version 0.0.1

3:进入myEcho项目中添加一个android平台

plugman platform add --platform_name <platform>
把<platform>替换为 android
plugman platform add --platform_name android

这时候查看我们的myEcho目录下的 src会新增一个目录android里面会有一个java文件:myEcho.java

4:plugin.xml配置文化修改

id: 插件的标识
name:插件的名称
description:描述信息
js-module:js文件指向 www/myEcho.js
platform:支持的平台
source-file:src当前文件路径地址,target-dir当Build应用的时候会安装到指定的目录下
示例:

<source-file src="src/android/myEcho.java" target-dir="src/com/lulee007/myEcho/myEcho" />
<source-file src="src/android/libuhf-tools.so" target-dir="libs/armeabi/" />
<source-file src="src/android/okhttp-2.5.0.jar" target-dir="libs/" />

再看下myEcho.js文件:

var exec = require('cordova/exec')引入cordova下的execexec(success, error, "myEcho", "coolMethod", [arg0]);

success:调用成功时的回调函数
error:调用出错时的回调函数
"myEcho":插件名称
"coolMethod":执行插件里的方法
[arg0]:可选参数,执行方法的参数数组

最终修改如图:
Ionic开发自定义插件

接着修改myEcho.java文件:
在execute方法里有个判断,

action.equals("coolMethod")跟myEcho.js文件的exec里面的coolMethod对应,表示是否执行我们所对应的方法如果不是则直接返回false结束
String message = args.getString(0)接收传过来的参数,可多个
callbackContext.success()回调

5:安装插件
进入项目目录输入:

cordova plugin add 插件目录

进入项目的plugins文件夹内查看是否安装成功

调用:

 window.plugins.myEcho("echo my text",
    function(data){
      alert(data);
    },
    function(error){
      alert(error);
    });

如果要对插件进行更新需要进行移动:

cordova plugin remove com.lulee007.myEcho
cordova plugin add 插件目录