从事基于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 插件开发的更多相关文章

  1. Cordova插件开发

    我在网上找了很多关于Cordova插件开发的例子,都不是我想要的,我只想要,怎么调用这个生成出来的js,最终得到了最为直接又简单的方法,希望给能帮助到大家! document.addEventList ...

  2. ionic2 自定义cordova插件开发以及使用 (Android)

    如何写一个cordova 用于ionic2项目中呢,在搜索了一番之后,千篇一律,我都怀疑那些文章是不是全部都是复制来复制去的,而且都不是很详细.我自己也捣鼓了一下午,踩了很多坑.所以特此写这下这篇,记 ...

  3. cordova插件开发注意事项

    1. 编写插件,先创建好cordova项目之后,在项目里开发调试好在去创建插件目录 如何在cordova项目里创建呢,在android文件夹下面的res/xml/config.xml里去加入插件 例如 ...

  4. cordova插件开发-1

    这是初级编,实现了js调用Android代码 首先需要编写java代码: public class AppUpdate extends CordovaPlugin { @Override public ...

  5. Android Cordova 插件开发之编写自己定义插件

    前言 本文适合Android+web的复合型人才,由于cordova本身就是混合开发,所以在Android开发的基础上,还要懂web相关技术(HTML+CSS+JS).可是也有例外,比方我.仅仅需负责 ...

  6. Android基于cordova3.3插件开发

    最近的工作项目,需要使用cordova插件开发,详细Cordova角色,不会走,你可以去百度自身OK该,直接启动.详细过程,我有一个小Demo解说提前进行. 还只是接触,东西太理论基础,我也不太清楚, ...

  7. Cordova Android源代码分析系列一(项目总览和CordovaActivity分析)

    版权声明:本文为博主offbye西涛原创文章.未经博主同意不得转载. https://blog.csdn.net/offbye/article/details/31776833 PhoneGap/Co ...

  8. cordova开发自己定义插件

    以下是自己定义cordova插件的基本入门.做插件的小白可以參考一下哈,兴许会更新插件的进阶博客,希望大家可以共同学习共同进步 1.环境搭建 cordova插件开发前须要安装一些软件和配置环境 1.1 ...

  9. cordova 插件发布到 npm

    cordova 插件发布到 npm Cordova插件开发(3)- 将Cordova插件发布到npm could not find an installed version of gradle eit ...

随机推荐

  1. 蓝桥杯-买不到的数目-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  2. 用java实现大文件分割、排序、合并

    import java.io.BufferedReader;   import java.io.BufferedWriter;   import java.io.FileNotFoundExcepti ...

  3. Python日期时间的相关操作

    1.获取当前时间戳 import time t=time.time() print t 1459994552.51 #以秒为单位的 2.格式化日期 time.localtime() 返回当前时间的: ...

  4. maven 聚合工程的创建和打包

    ---恢复内容开始--- 使用eclipse创建maven项目 第一步:创建父工程hg-parent,如图; 右击空白处,new创建新maven工程: 搜索maven项目 父工程使用pom打包方式 第 ...

  5. Linux 安装 apache2.4.23

    Apache安装要求 必须安装APR.APR-Util.PCRE,gcc-c++等包 Apache httpd: http://mirrors.cnnic.cn/apache//httpd/httpd ...

  6. linux 下 查看是32位还是64位系统 命令

    文章引自:http://zhidao.baidu.com/question/583981849.html 方法1:getconf LONG_BIT 查看 如下例子所示: 32位Linux系统显示32, ...

  7. trap-接收信号_采取行动

    trap命令用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作. kill和trap等都可以看到信号编号及其关联的名称. "信号"是指那些被异步发送到 ...

  8. MyBatis之级联——鉴别器

    鉴别器(discriminator)是MyBatis为我们提供的第三个级联也是最后一个.基于之前两篇级联中的场景,现增加学生们去体检,但男女体检项目不一样,我们把男女体检表做成两张表,当然我想也可以设 ...

  9. 必知的 15 个jQuery小技巧(干货)

    jQuery小技巧(干活) 1.返回顶部按钮 你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而不需要使用其他插件. $('a.top').click(function(){ ...

  10. 数组去重,call、apply、bind之间的区别,this用法总结

    一.数组去重,直接写到Array原型链上. //该方法只能去除相同的数字 不会去判断24和'24'是不同的 所有数字和字符串数字是相同是重复的 Array.prototype.redup=functi ...