cordova 插件开发
从事基于cordova开发混合APP也快一年了,一直没有自己“亲自操刀”写一个插件,因为网上插件太丰富了,可耻了。
今天完整的记录一次插件开发。
cordova环境6.4.0
- 第一步安装:plugman
npm install -g plugman
- 第二步:创建插件
plugman create --name <pluginName> --plugin_id <pluginID> --plugin_version <version> [--path <directory>] [--variableNAME=VALUE]
plugman create --name TestDialog --plugin_id com.testadialog --plugin_version 0.0.1
创建好了以后 进入 该文件夹

然后该文件里面会自动帮我们创建好一系列文件
test-plugin-dialog
如下目录结构
-src
---android
-----TestDialog.java
-www
---TestDialog.js
-plugin.xml
如图:

- 第三步:理解plugin.xml文件
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="com.testa_dialog" version="0.0.1">
<name>TestDialog</name>
//存放js接口文件
<js-module name="TestDialog" src="www/TestDialog.js">
<clobbers target="cordova.plugins.TestDialog"/>
</js-module>
//对应插件的平台
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="TestDialog">
<param name="android-package" value="com.testa_dialog.TestDialog"/>
</feature>
</config-file>
<config-file parent="/*" target="AndroidManifest.xml"/>
<source-file src="src/android/TestDialog.java" target-dir="src/com/testa_dialog/TestDialog"/>
</platform>
</plugin>
- 第四步:安装插件
cordova plugin add ./TestDialog

- 第五步:成功安装插件后,我们把android工程导入android studio中,第一次导入可能需要一些时间,耐心等待。如果实在等待不了,请翻墙。

- 第六步:理解cordova-plugin.js文件

图中的id对应是JS 接口文件中的cordova.define()中的一个参数;如下所示
cordova.define("com.testadialog.TestDialog", function(require, exports, module) {
var exec = require('cordova/exec');
exports.coolMethod = function(arg0, success, error) {
exec(success, error, "TestDialog", "coolMethod", [arg0]);
};
});

clobbers中的cordova.plugins.TestDialog是js 全局变量,配合你的js插件接口使用。

在你的js文件中,如果需要调用coolMethod方法,即:
cordova.plugins.TestDialog.coolMethod()//调用该方法
- 第六步:具体编写插件

- exec函数中的参数:
- success:即native层成功回调
- error:即native层失败回调
- 第三个参数:即对应java类
- 第四个参数:即navtive对应的方法
- 第五个参数:传递给native层的变量
- 分别对应android中的:

cordova 插件开发的更多相关文章
- Cordova插件开发
我在网上找了很多关于Cordova插件开发的例子,都不是我想要的,我只想要,怎么调用这个生成出来的js,最终得到了最为直接又简单的方法,希望给能帮助到大家! document.addEventList ...
- ionic2 自定义cordova插件开发以及使用 (Android)
如何写一个cordova 用于ionic2项目中呢,在搜索了一番之后,千篇一律,我都怀疑那些文章是不是全部都是复制来复制去的,而且都不是很详细.我自己也捣鼓了一下午,踩了很多坑.所以特此写这下这篇,记 ...
- cordova插件开发注意事项
1. 编写插件,先创建好cordova项目之后,在项目里开发调试好在去创建插件目录 如何在cordova项目里创建呢,在android文件夹下面的res/xml/config.xml里去加入插件 例如 ...
- cordova插件开发-1
这是初级编,实现了js调用Android代码 首先需要编写java代码: public class AppUpdate extends CordovaPlugin { @Override public ...
- Android Cordova 插件开发之编写自己定义插件
前言 本文适合Android+web的复合型人才,由于cordova本身就是混合开发,所以在Android开发的基础上,还要懂web相关技术(HTML+CSS+JS).可是也有例外,比方我.仅仅需负责 ...
- Android基于cordova3.3插件开发
最近的工作项目,需要使用cordova插件开发,详细Cordova角色,不会走,你可以去百度自身OK该,直接启动.详细过程,我有一个小Demo解说提前进行. 还只是接触,东西太理论基础,我也不太清楚, ...
- Cordova Android源代码分析系列一(项目总览和CordovaActivity分析)
版权声明:本文为博主offbye西涛原创文章.未经博主同意不得转载. https://blog.csdn.net/offbye/article/details/31776833 PhoneGap/Co ...
- cordova开发自己定义插件
以下是自己定义cordova插件的基本入门.做插件的小白可以參考一下哈,兴许会更新插件的进阶博客,希望大家可以共同学习共同进步 1.环境搭建 cordova插件开发前须要安装一些软件和配置环境 1.1 ...
- cordova 插件发布到 npm
cordova 插件发布到 npm Cordova插件开发(3)- 将Cordova插件发布到npm could not find an installed version of gradle eit ...
随机推荐
- 【解决问题】解决python安装模块时UnicodeDecodeError
安装模块时,出现报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb in position 68: ordinal not in ...
- DFB系列 之 Bilp叠加
1. 函数原型解析 函数声明: DFBResult Blit ( IDirectFBSurface * thiz, IDirectFBSurface * source ...
- hadoop集群搭建--CentOS部署Hadoop服务
在了解了Hadoop的相关知识后,接下来就是Hadoop环境的搭建,搭建Hadoop环境是正式学习大数据的开始,接下来就开始搭建环境!我们用到环境为:VMware 12+CentOS6.4 hadoo ...
- JavaScript中变量、参数、函数之间的关系
------------------------------ 废话不多说,直接开始. 我们看一段代码(参考其他资料所得) <script type="text/javascript&q ...
- Docker学习总结(一)
<认识Docker> 不定期更新~~~~~~~ 历史区别: 13年之前:网络大多使用"协议栈堆叠"的形式进行开发,需要部署单一专有的服务器进行操作.包括(中间件,运行时 ...
- JavaScript异步编程
前言 如果你有志于成为一个优秀的前端工程师,或是想要深入学习JavaScript,异步编程是必不可少的一个知识点,这也是区分初级,中级或高级前端的依据之一.如果你对异步编程没有太清晰的概念,那么我建议 ...
- PHP自定义函数
啊哈
- DOM4J案例详解(添加 ,查询 ,删除 ,保存)
先看一下XML文档 <?xml version="1.0" encoding="gb2312"?> <exam> <student ...
- 浅谈mmap()和ioremap()的用法与区别
一.mmap()mmap()函数是用来将设备内存线性地址映射到用户地址空间.(1)首先映射基地址,再通过偏移地址寻址:(2)unsigned char *map_cru_base=(unsigned ...
- [UWP]不怎么实用的Shape指南:自定义Shape
1. 前言 这篇文章介绍了继承并自定义Shape的方法,不过,恐怕,事实上,100个xaml的程序员99个都不会用到.写出来是因为反正都学了,当作写个笔记. 通过这篇文章,你可以学到如下知识点: 自定 ...