昨天第一次写简书,感觉太生硬,有的东西只有自己懂了,没有说的和明白,还望大家见谅,今天说一下自定义ionic插件的一些心得!希望大家勿喷啊。先装一下逼吧,很多刚学的或者学了一段时间的同学,兴许还不知道ionic和cordova的区别,还有phonegap是什么东东?
通俗的讲:ionic是一款基于angularjs的html5移动app开发框架phonegap就是一款可以打包并且可以让js调用原生的移动app框架
问题来了? 那我不用命令安装ionic 可以使用ionic开发app吗?答案是可以得。
1.环境配置
Node.js的安装,ionic的安装这里不再赘述,默认大家都安装配置好了环境。
1.1. 安装plugman新建插件,终端输入
npm install -g plugman
安装时如果出现Error: EACCES: permission denied,说明没有权限,只需要在命令前面加上 sudo npm install -g plugman 即可,安装命令与安装结果如下:
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
执行完命令之后会在当前目录生成一个文件夹,我但前设置的是桌面,文件加目录如下
接下来向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两个文件夹,结果如下:
先看配置文件: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的插件配置信息。
接下来咱们在介绍一下插件目录中www/xxx.js文件中几个关键字信息:
步骤很简单:
第一步是引入cordova下的exec库;
第二步是执行插件方法
exec(success, error, "DZFPlugin", "coolMethod", [arg0]);
success:调用成功时的回调方法
error :调用失败时的回调方法
"DZFPlugin" :是插件的名称
"coolMethod" :执行插件里的方法,即原生的方法
[arg0]:可选参数,执行方法的参数数组
最后的js文件方法如下,由于只是做了一个demo,所以原生方法名字还是用的插件自带原生文件的类名,秩序自己替换成自己定义的原生方法名字即可。
3.安装自定义插件
这里用事先创建好的ionic项目进行自定义插件的测试,具体ionic项目的创建,请看我的第一篇简书,打开终端
cd DZFPluginDemo -------切换到项目目录下
cordova plugin add plugin-id或者插件路径 ---------本项目是插件的本地路径,是否安装成功请见下图,以iOS为例。
此时工程项目的plugins下会看到自己的插件,前提是你已经安装成功了!,距离胜利只剩一小步了!!
接下来打开项目目录下的platforms/ios/DZFPluginDemo工程,最先应该看的两个地方就是Staging目录下的config.xml和www目录下的cordova_plugins.js文件,如果和下图一致,表明插件已经注册成功了!cordova_plugins.js文件中的clobbers键对应的值应该是配置插件时pluign.xml文件的划横线的名字,否则提示找不到方法。
打开DZFPluginDemo目录下的staging/www/templates/tab-dash.html(项目的首页添加一个按钮),注意:如果tab-dash.html编辑不了,在终端输入sudo chmod -R 777 .即可解决问题,前提是已经进入项目目录,编辑templates文件夹下的tab-dash.html,添加一个按钮,便于测试自定义插件是否可用如下。
然后编辑staging/www/js/controller.js文件,方框中的名字和cordova_plugins.js文件中clobber对应的值是一样的。
运行项目
至此为止,自定义插件已完成,可能有些地方说的不是很清楚,还有很多不足,感觉自己的语言的组织能力太差了,希望大家多给与评论,便于我的改正。