以下是自己定义cordova插件的基本入门。做插件的小白可以參考一下哈,兴许会更新插件的进阶博客,希望大家可以共同学习共同进步

1.环境搭建

cordova插件开发前须要安装一些软件和配置环境

1.1 node.js环境搭建

到node.js官网(https://nodejs.org/)下载安装就好。只是訪问node.js须要翻墙,在dos窗体输入npm,能显演示样例如以下信息就说明node.js成功安装

1.2 cordova和ionic 的安装

在窗体输入以下命令全局安装cordova和ionic

安装cordova (cordova版本号建议安装6.3.1)

npm install -g cordova@6.3.1

安装ionic

npm install -g ionic

注:安装cordova和ionic时一次不一定会成功,须要多试几次,假设能翻墙的童鞋们能翻墙就更好了

1.3 android  sdk的下载

到谷歌官网(https://developer.android.com/sdk/index.html)上下载android sdk。然后需配置以下几个环境变量

到此插件的开发环境就搭建好了。

2.创建第一个应用

创建的命令是ionic start CoolApp tabs

3.加入平台

3.1 进入创建的项目文件夹

cd CoolApp

3.2 查看已有的平台

cordova platforms list

3.3加入所须要的平台

cordova platform add android

假设要指定安装android6.0的平台能够这样运行命令:cordova platform add android@6.0

假设想移除已经加入的平台的话 cordova
platform remove android 或者cordova
platform rm android

注:假设须要看具体的cordova的命令的话能够參考这篇博文http://wenzhixin.net.cn/2014/02/11/cordova_command_line

4.将project导入androidStudio(在到了studio之前要确保加入了android平台)

第一步:选择Import project(Eclipse ADT,Gradle,etc.)

第二步:找到platform->android下的build.gradle点击ok,等studio编译一段时间就能导入成功了

到此:插件的准备工作就已经做好了

5.插件开发

接下来是插件的详细开发过程

5.1 pluman的安装

npm install -g plugman

5.2 plugman安装完之后就能够创建一个插件了,使用如以下命令

plugman create --name <pluginName> --plugin_id <pluginID> --plugin_version <version> [--path <directory>] [--variableNAME=VALUE]



參数:

pluginName: 插件名字

pluginID: 插件id, egg : coolPlugin 

oversion: 版本号, egg : 0.0.1

directory:一个绝对或相对路径的文件夹,该文件夹将创建插件项目

variable NAME=VALUE: 额外的描写叙述,如作者信息和相关描写叙述

egg : plugman create --name CoolPlugin --plugin_id coolPlugin --plugin_version 0.0.1

生成的插件的文件夹例如以下:

可是遵循规范的话,一般在src文件夹下新建android文件夹,然后在android文件夹下新建ShowToast.java类(ShowToast.java此时是一个空文件),例如以下图

HelloPlugin.js和plugin.xml的解释能够參考http://blog.csdn.net/itcatface/article/details/50520301。这边博文解释的很具体

当中HelloPlugin.js和plugin.xml的相关配置例如以下

在命令生成的插件下默认生成plugin.xml和CoolPlugin.js,以下分别打开查看:

a. plugin.xml的配置

打开plugin.xml你会看到例如以下已经生成的配置

<?xml version='1.0' encoding='utf-8'?

>
<plugin id="coolPlugin" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>CoolPlugin</name>
<js-module name="CoolPlugin" src="www/CoolPlugin.js">
<clobbers target="cordova.plugins.CoolPlugin" />
</js-module>
</plugin>

首先解释一下里面的几个參数:

id:  插件的id

version: 插件的版本号

name: 插件的名字

clobbers: 这个是js代码调用原生代码的引用

b.CoolPlugin.js的配置

coolPlugin.js稍后再和完整的plugin.xml一起介绍

var exec = require('cordova/exec');

exports.coolMethod = function(arg0, success, error) {
exec(success, error, "CoolPlugin", "coolMethod", [arg0]);
};

c.完整plugin.xml和CoolPlugin.js

plugin.xml

<?xml version='1.0' encoding='utf-8'?>
<plugin id="coolPlugin" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>CoolPlugin</name>
<js-module name="CoolPlugin" src="www/CoolPlugin.js">
<clobbers target="cordova.plugins.CoolPlugin" />
</js-module> <platform name="android">
<source-file src="src/android/ShowToast.java" target-dir="src/com/hand/toast"/> <config-file target="res/xml/config.xml" parent="/*">
<feature name="ShowToast">
<param name="android-package" value="com.hand.toast.ShowToast"/>
</feature>
</config-file>
</platform>
</plugin>

CoolPlugin.js

var exec = require('cordova/exec');

exports.toast = function(arg0, success, error) {
exec(success, error, "ShowToast", "toast", [arg0]);
};

看到plugin.xml在之前的基础上新加了<platform>节点

当中feature相应着CoolPlugin.js中exec(success, error, "ShowToast", "toast", [arg0]);第3个參数,这个两处的參数必须一致,不然插件调用不起来,exports.toast和第4个參数也必须一致,这个是调用原生代码中的方法,后面会讲到。

plugin.xml中的很多其它信息能够參考http://blog.csdn.net/u013598660/article/details/50065937

6.3插件的安装

我的插件所在的路径是F:\handPlugin\CoolPlugin

首先切换到最初创建的CoolApp文件夹  cd CoolApp

运行插件安装命令 cordova plugin add F:\handPlugin\CoolPlugin

运行完之后你就发现插件已经安装上去了

假设你想卸载插件的话,运行cordova plugin remove  你的plugin_id

egg:cordova plugin remove  coolPlugin

安装后的在项目中如图所看到的:

补充ShowToast.java

package com.hand.toast;

import android.widget.Toast;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException; public class ShowToast extends CordovaPlugin{
private CallbackContext mCallbackContext;
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
this.mCallbackContext = callbackContext;
if("toast".equals(action)){
String msg = args.getString(0);
Toast.makeText(cordova.getActivity(),msg,Toast.LENGTH_SHORT).show();
callbackContext.success("success");
return true;
}
mCallbackContext.error("error");
return false;
}
}

if(“toast”.equals(action))中的toast相应中CoolPlugin.js中的exports.toast和exec方法的第4个參数

完毕这个类后把完整的类拷贝到之前的插件中覆盖掉ShowToast.java,这样一个最简单的插件就算是完毕了,接下来測试一下我们的成果

6.4插件的使用

    <Button onclick="cordova.plugins.CoolPlugin.toast('吐司',function(msg){
alert(msg);
},function(msg){
alet(msg);
})">打印吐司</Button>

能够在assets->templates->的tab-dash.html中加入使用代码:

例如以下:

<ion-view view-title="Dashboard">
<ion-content class="padding">
<Button onclick="cordova.plugins.CoolPlugin.toast('吐司',function(msg){
alert(msg);
},function(msg){
alet(msg);
})">打印吐司</Button>
</ion-content>
</ion-view>

最后附着效果图:

项目源代码连接:http://download.csdn.net/detail/cool_fuwei/9722834

插件下载地址:http://download.csdn.net/detail/cool_fuwei/9722847

cordova开发自己定义插件的更多相关文章

  1. 基于Cordova5.0开发自己定义插件(android)

    1.开发插件java部分 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenhmMjE2MjE2/font/5a6L5L2T/fontsize/400/fi ...

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

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

  3. Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件)

    Cordova - 使用Cordova开发iOS应用实战3(添加Cordova控制台插件) 前文介绍了通过 Safari 的 Web检查器,可以看到控制台输出的信息.但有时这样调试代码不太方便,如果在 ...

  4. Cordova开发总结(插件篇)

    最近刚刚做完一个用Cordova开发了一款电子商务的应用.在选用Cordova前,我有考察过,国内的Appcan, Apicloud等等的解决方案.其实Appcan,ApiCloud的混合方案挺完整的 ...

  5. phonegap(cordova) 自己定义插件代码篇(五)----android ,iOS 集成微信登陆

    统一登陆还是非常有必要的,安全,放心.代码 /*cordov 微信自己定义插件*/ (function (cordova) { var define = cordova.define; define( ...

  6. Cordova开发App入门之创建android项目

    Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑 ...

  7. [Android教程] Cordova开发App入门(一)创建android项目

    前言 Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的A ...

  8. 为WLW开发Latex公式插件

    WLW是写博客的利器,支持离线.格式排版等,而且拥有众多的插件.博客园推荐了代码插入插件,但是没有提供WLW的公式编译插件.目前我的一般做法是:先在Word下使用MathType编辑好公式,然后将公式 ...

  9. 搭建 AngularJS+Ionic+Cordova 开发环境并运行一个demo

    目前的手机APP有三类:原生APP,WebAPP,HybridApp:HybridApp结合了前两类APP各自的优点,越来越流行. Cordova就是一个中间件,让我们把WebAPP打包成Hybrid ...

随机推荐

  1. Vim求生

    [TOC] Vim 是从 vi 发展出来的一个文本编辑器.其代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器. —— ...

  2. VisualVM远程JVM

    Tomcat配置 进入TOMCAT_HOME/bin目录 打开catalina.sh文件,加入如下信息: JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.ho ...

  3. 通用数据库管理工具DBeaver

    通用数据库管理工具DBeaver   在渗透测试中,用户往往需要管理很多数据库.这些数据库可能是渗透软件使用的(如Metasploit使用的Postgresql),也有目标主机的数据库(如网站的数据库 ...

  4. 【计算几何】【斜率】bzoj1610 [Usaco2008 Feb]Line连线游戏

    枚举直线,计算斜率,排序,统计答案. #include<cstdio> #include<cmath> #include<algorithm> using name ...

  5. JavaScript:this是什么

    JavaScript:this是什么? 定义:this是包含它的函数作为方法被调用时所属的对象. 说明:这句话有点咬嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它! 1.包含它的函数 ...

  6. Java架构师之路 Spring学习笔记(一) Spring介绍

    前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ...

  7. JS面向对象之闭包

    闭包 闭包的概念 闭包的含义就是闭合,简单来说就是一个具有封闭功能的结构 闭包就是具有封闭的对外不公开的,包裹结构或空间 在 js 中的闭包 在 js 中函数可以构成闭包 函数是一个代码结构的封闭结构 ...

  8. ajax回调中window.open弹出的窗口会被浏览器拦截的解决方法

    存在问题:处理页面ajax请求过程中,异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法 来实现,最终都被浏览器拦截了.不会跳到对应的页面,如下 原因:浏览器之所以拦截 ...

  9. Centos7.4 建站系统和软件版本搭配

    一.系统和软件版本搭配 版本: 1.1.2 类型: 建站系统 适用于: Centos7.4 64bit 集成软件版本: nginx_versi=1.12.2 PHP=7.1.13 (已提供提供Zend ...

  10. 顶点缓存对象(VBO)【转】

    http://www.cnblogs.com/hefee/p/3824300.html 顶点缓存对象(VBO) 创建VBO 绘制VBO 更新VBO 实例 GL_ARB_vertex_buffer_ob ...