美文网首页Ionic 2 花瓣 ..
ionic实现自定义插件

ionic实现自定义插件

作者: 会疼的白痴 | 来源:发表于2016-06-22 15:46 被阅读3032次

昨天第一次写简书,感觉太生硬,有的东西只有自己懂了,没有说的和明白,还望大家见谅,今天说一下自定义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 即可,安装命令与安装结果如下:


屏幕快照 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

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


屏幕快照 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两个文件夹,结果如下:

屏幕快照 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的插件配置信息。

BDEACB8C-49B5-460B-A196-009D1712C848.png

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

步骤很简单:
第一步是引入cordova下的exec库;
第二步是执行插件方法

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

D1602C63-BE59-42DD-9F00-C147EE118A59.png

3.安装自定义插件

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

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

42A14504-8670-4F66-8D80-36F4457FADB0.png

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

70AC0438-CC86-4C94-9E9E-67DE626C5129.png

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

0735336E-B148-45C7-8811-2220FDF6DEDF.png 0C7477DC-B3EB-4E5A-92A3-54D6F34FCA47.png

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


58BDB8F6-1D3B-4F61-A07E-B7638F963888.png

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


D82CC401-3120-47DC-92A2-A78559A425FC.png
运行项目 Simulator Screen Shot 2016年6月22日 下午3.45.19.png Simulator Screen Shot 2016年6月22日 下午3.45.51.png

至此为止,自定义插件已完成,可能有些地方说的不是很清楚,还有很多不足,感觉自己的语言的组织能力太差了,希望大家多给与评论,便于我的改正。

相关文章

  • 项目重建命令集

    $ ionic start SmSt tabs$ cd SmSt 安装自定义插件ionic cordova plu...

  • ionic实现自定义插件

    昨天第一次写简书,感觉太生硬,有的东西只有自己懂了,没有说的和明白,还望大家见谅,今天说一下自定义ionic插件的...

  • ionic4 拍照,相册选择相片

    ionic4 调用相机拍照,并回显图片功能实现 1.安装Camera插件 ionic cordova plugi...

  • ionic 自定义插件

    由于ionic是基于cordova进行插件管理的,在实际的项目过程中。有时候需要自定义插件来满足业务的需求。 ...

  • ionic插件基础

    查看插件:ionic plugin list或者:ionic cordova plugin -list 添加插件i...

  • ionic- cordova- 调用原生,传参数

    ionic 自定义插件 需要在 ios 项目下的config.xml 里面添加 :如下格式的东西

  • ionic2常用插件

    添加相机插件ionic plugin add cordova-plugin-camera添加文件上传插件ionic...

  • 自定义Gradle-Plugin 插件详解

    自定义Gradle-Plugin 插件 官方文档给出了详细的实现步骤,笔者 将参考官方文档:通过自定义插件实现li...

  • ionic 封装原生android为插件

    之前因为要在ionic项目中实现短视频功能没有找到相关插件,遂利用原生封装为插件实现: 准备: 1.首先需要用原生...

  • ionic自定义插件

    确保已配置好ionic开发环境 1. plugman的安装 npm install -g plugman 2.创建...

网友评论

  • Jock58:楼主,这个是在ionic1里面实现的,有试过在ionic2上,用ts实现自定义插件么?
    会疼的白痴:@Jock58 我是做iOS 开发的!之前有一个项目需要我们配合写插件,完了就看了一下!
    Jock58:@会疼的白痴 楼主,我是直接就从ionic2入手的,不过我想你之前有过ionic1的实战经验,估计可以借鉴。现在楼主还在做前端么,也是做的混合开发么?
    会疼的白痴:@Jock58 不好意思,我们那个项目做完了!就在没弄了!所以你说的我还不清楚
  • SwordDevil:楼主 请问 黑豆是这么生成的
  • xworld:楼主我想问一下每次修改这个插件代码cordova运行的时候会不会自动把代码copy进去?
  • 会疼的白痴:可以,你加我QQ吧,我已经好久没弄了,上个项目是用ionic开发的,加我QQ:953995648
  • 异北:楼主是做ios开发的吗?我现在也在研究自定义插件,有些不明白的,希望可以一起沟通一下

本文标题:ionic实现自定义插件

本文链接:https://www.haomeiwen.com/subject/vragdttx.html