自定义ionic插件

时间:2022-02-13 17:17:27

自定义ionic插件

1.环境配置

Node.js的安装,ionic的安装这里不再赘述,默认大家都安装配置好了环境。
1.1. 安装plugman新建插件,终端输入

npm install -g plugman

安装时如果出现Error: EACCES: permission denied,说明没有权限,只需要在命令前面加上 sudo npm install -g plugman 即可,安装命令与安装结果如下:

自定义ionic插件
屏幕快照 2016-06-22 上午10.25.45.png

2. 新建一个自定义插件DZFPlugin,用弹框显示我们的内容

plugman create --name <pluginName> --plugin_id <pluginID> --plugin_version <version> [--path <directory>] [--variable NAME=VALUE]
把其中的<pluginName>替换为 DZFPlugin;

<pluginID> 替换为 cordova.plugin.DZFPlugin

<version> 替换为 0.0.1
[--path <directory>] [--variable NAME=VALUE] 这两个是可选参数,这里不写了。这样会在当前目录下(desktop)创建一个新的目录DZFPlugin

plugman create --name DZFPlugin --plugin_id cordova.plugin.DZFPlugin --plugin_version 0.0.1

执行完命令之后会在当前目录生成一个文件夹,我但前设置的是桌面,文件加目录如下

自定义ionic插件
屏幕快照 2016-06-22 上午10.33.36.png


接下来向DZFPlugin项目中添加Android和ios平台,把platform替换为android和ios即可,首先进入插件文件路径,cd DZFPlugin

plugman platform add --platform_name <platform>

最终在终端输入的命令如下

plugman platform add --platform_name android
plugman platform add --platform_name ios
平台添加完毕,DZFPlugin中src文件夹下会多出来android和ios两个文件夹,结果如下:

自定义ionic插件
屏幕快照 2016-06-22 上午10.40.28.png


先看配置文件:plugin.xml

解释一下关键的几个元素:
(1) id:插件标识,即一开始我们创建插件时输入的cordova.plugin.DZFPlugin
(2) name:插件名称,即新建插件是输入的DZFPlugin
(3) js-module:对应的javascript文件路径,src属性指向www/DZFPlugin.js
(4) platform:支持的平台,就是刚才我们这是刚才我们通过“ plugman platform add --platform_name ios ”添加进来的,这里是安卓和iOS的插件配置信息。

自定义ionic插件
BDEACB8C-49B5-460B-A196-009D1712C848.png


接下来咱们在介绍一下插件目录中www/xxx.js文件中几个关键字信息:

步骤很简单:
第一步是引入cordova下的exec库;
第二步是执行插件方法
exec(success, error, "DZFPlugin", "coolMethod", [arg0]);
success:调用成功时的回调方法
error :调用失败时的回调方法
"DZFPlugin" :是插件的名称
"coolMethod" :执行插件里的方法,即原生的方法
[arg0]:可选参数,执行方法的参数数组
最后的js文件方法如下,由于只是做了一个demo,所以原生方法名字还是用的插件自带原生文件的类名,秩序自己替换成自己定义的原生方法名字即可。

自定义ionic插件
D1602C63-BE59-42DD-9F00-C147EE118A59.png

3.安装自定义插件

这里用事先创建好的ionic项目进行自定义插件的测试,具体ionic项目的创建,请看我的第一篇简书,打开终端

cd DZFPluginDemo -------切换到项目目录下
cordova plugin add plugin-id或者插件路径 ---------本项目是插件的本地路径,是否安装成功请见下图,以iOS为例。

自定义ionic插件
42A14504-8670-4F66-8D80-36F4457FADB0.png


此时工程项目的plugins下会看到自己的插件,前提是你已经安装成功了!,距离胜利只剩一小步了!!

自定义ionic插件
70AC0438-CC86-4C94-9E9E-67DE626C5129.png


接下来打开项目目录下的platforms/ios/DZFPluginDemo工程,最先应该看的两个地方就是Staging目录下的config.xml和www目录下的cordova_plugins.js文件,如果和下图一致,表明插件已经注册成功了!cordova_plugins.js文件中的clobbers键对应的值应该是配置插件时pluign.xml文件的划横线的名字,否则提示找不到方法。

自定义ionic插件
0735336E-B148-45C7-8811-2220FDF6DEDF.png
自定义ionic插件
0C7477DC-B3EB-4E5A-92A3-54D6F34FCA47.png

打开DZFPluginDemo目录下的staging/www/templates/tab-dash.html(项目的首页添加一个按钮),注意:如果tab-dash.html编辑不了,在终端输入sudo chmod -R 777 .即可解决问题,前提是已经进入项目目录,编辑templates文件夹下的tab-dash.html,添加一个按钮,便于测试自定义插件是否可用如下。

自定义ionic插件
58BDB8F6-1D3B-4F61-A07E-B7638F963888.png


然后编辑staging/www/js/controller.js文件,方框中的名字和cordova_plugins.js文件中clobber对应的值是一样的。

自定义ionic插件
D82CC401-3120-47DC-92A2-A78559A425FC.png


运行项目

自定义ionic插件
Simulator Screen Shot 2016年6月22日 下午3.45.19.png
自定义ionic插件