ionic中自定义插件的问题

来源:互联网 发布:js单选框选中触发事件 编辑:程序博客网 时间:2024/06/04 17:45

因为项目需求,最近在研究ionic,本人是做android的,本来说所有功能都用html做,这样我们可以基本不用做了(虽然我也打算转h5),但是后面又提出一个需求说要本地实现富文本,天哪,哪有app本地实现富文本的需求啊,然后就各种百度赵资料,终于按照github上的demo改得差不多,然后问题来了,应该如何h5调用本地去实现富文本呢,最后想到说自己定义插件来实现,毕竟ionic里面都是用插件来实现的。

首先我们通过命令行进入到ionic项目下,但不是android目录下执行命令

npm install -g plugman

这个命令是安装plugman插件的,可以通过它来生成插件,安装完之后

plugman create --name NavCtrl --plugin_id com-plugin-navctrl --plugin_version 0.0.1

上面代码中name后面是插件名字,id后面是插件id,version后面是插件版本,这个创建过程很快,然后你会发现目录下会生成NavCtrl项目,如下图:

这里写图片描述

具体其他文件夹下是什么意思我相信大家有研究过的应该都知道了,然后执行下列命令:

cd NavCtrl
plugman platform add –platform_name android

(注:我是在android上测试的,ios上可以执行 plugman platform add –platform_name ios)

执行完上面的命令你会发现在上图src目录下生成android文件夹,这时候插件项目中已经完成了,由于我的plugin_id 是com-plugin-navctrl 所以生成的src/android/NavCtrl.java的包名也是这个所以我改成com.plugin.navctrl

plugin.xml里面的内容是这样的,同上进行修改:
这里写图片描述

我修改了clobbers的target值,android-package的value值,source-file的值不然会报错。

clobbers里面的target属性 是后面用于调用的插件名,比如:NavCtrl.coolMethod(null,null,null);

下面我们就要把插件添加到项目中去了,于是我执行:

cd.. 先从插件目录退出来 返回到ionic主目录
ionic plugin add NavCtrl

它会报错提示:Failed to install ‘com.plugin.navctrl’:SyntaxError: Unexpected token } in JSON at position 5011…
然后我想了下是不是我已经添加了android目录了,然后我把android平台删除后再添加了一遍就ok了,好像错误也就是提示android下代码有问题吧。
成功后我用as打开android项目发现和其他插件一样已经可以使用了,你会发现NavCtrl.js下是这样的代码

cordova.define(“com.plugin.navctrl.NavCtrl”, function(require, exports, module) {
var exec = require(‘cordova/exec’);
exports.coolMethod = function(arg0, success, error) {
exec(success, error, “NavCtrl”, “coolMethod”, [arg0]);
};
});

exec有5个参数 第一个是成功回调,第二个是失败回调,第三个是插件名称,第四个是插件执行的方法,对应到java中execute方法的action吧,第五个是参数可以多个参数。

该方法是我尝试过直接代码中添加插件失败后才尝试的,我也不知道如果直接在ionic中创建navctrl.js 为什么监听不到,我也配置了,求大神指教。

分享几个命令:

ionic plugin list 查看所有插件
ionic plugin remove 插件名 (注意这里的插件名是上面list查出来的三列里面的第一个列那个名字)

最后谢谢大神的分享 http://www.2cto.com/kf/201608/536220.html

0 0