自定cordova插件笔记demo
1.在项目根目录下(我的是com.chl),添加一个文件夹,在文件夹里添加src、www两个子文件夹和plugin.xml文件。在www目录下,创建test.js。在src文件夹下添加android子目录(--为了区分平台,android/ios...--),在android目录下添加chl文件夹(--包名--),在chl目录下添加TestPlugin.java文件。

2.打开test.js文件,添加getName方法:
var exec = require("cordova/exec");
var test = {
/**
* getName方法
* @param successCallback:成功的回调函数
* @param errorCallback:失败的回调函数
*/
getName: function(successCallback, errorCallback){
/**
* 调用TestPlugin.java
* action = getName
*/
cordova.exec(successCallback, errorCallback, "TestPlugin", "getName", []);
}
}
module.exports = test;

打开TestPlugin.java文件:
package chl;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.json.JSONArray;
import org.json.JSONException;
public class TestPlugin extends CordovaPlugin {
public static final String ACTION_GET_NAME = "getName";
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
try{
if(ACTION_GET_NAME.equals(action)){
callbackContext.success("张三");
return true;
}
callbackContext.error("action是不getName");
return false;
}catch(Exception e){
System.out.println("异常信息: " + e.getMessage());
callbackContext.error(e.getMessage());
return false;
}
}
}

打开plugin.xml配置插件:
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
id="cordova-plugin-chenhlTest" version="1.0.0"><!-- id为插件的名称,插件安装后会在plugins目录下出现cordova-plugin-chenhlTest文件夹 -->
<name>chenhlTest</name>
<description>my test plugin ...</description><!-- 描述 -->
<license>no license ...</license>
<engines>
<engine name="cordova" version=">=3.0.0" /><!-- 适用版本 -->
</engines>
<js-module src="www/test.js" name="Test">
<clobbers target="cordova.plugins.chenhlTest" /><!-- 调用时的名称 -->
</js-module>
<platform name="android"><!-- 以下是android平台配置信息 -->
<source-file src="src/android/chl/TestPlugin.java" target-dir="src/chl" /><!-- java源代码 -->
<config-file target="res/xml/config.xml" parent="/*">
<feature name="TestPlugin">
<param name="android-package" value="chl.TestPlugin"/><!-- 指向src/android/chl/TestPlugin.java文件 -->
</feature>
</config-file>
<config-file target="AndroidManifest.xml">
<!--<uses-permission android:name="android.permission.READ_PHONE_STATE" />--><!-- android权限 -->
</config-file>
</platform>
</plugin>

至此代码写完了,接下来就是安装插件。
3.安装插件
打开cmd,并进到项目的根目录。
执行命令:
cordova plugin add chenhl
注:chenhl就是最先创建的文件夹名称
正确执行完命令后,就可以在项目的plugins目录下,看到cordova-plugin-chenhlTest插件了。

4.调用插件
在页面上添加按钮
<button class="button-full button button-positive" ng-click="pluginTest();">测试自定义插件</button>
在对应的controller:
$scope.pluginTest=function(){
//cordova.plugins.chenhlTest:plugin.xml文件中配置在clobbers中的
cordova.plugins.chenhlTest.getName(function(name){
alert(name);
}, function(err){
alert(err);
});
}
5.测试结果

自定cordova插件笔记demo的更多相关文章
- bootstrap-paginator 分页插件笔记
[MVC]bootstrap-paginator 分页插件笔记 bootstrap-paginator基于bootstrap框架,使用起来非常简单.官网:http://harttle.github ...
- ionic实战系列(二):使用cordova插件
本章主要关注cordova的各种插件,利用好手机(移动设备)的原生功能.首先cordova是一个将web网页内嵌到原生app的平台(核心功能),然后cordova拥有的插件系统扩展了核心功能. Cor ...
- 自定义 Cordova插件(基础篇)
cordova自定义插件 注意:存放自定义cordova插件目录不能有空格可能会报错 cordova的安装 下载node.js,安装完成后你可以在命令行中使用node和npm. 安装cordova使用 ...
- 自定义 Cordova插件详解
一.Cordova的基础点 在混合式应用中,我们通过现有的Cordova插件,可以轻松的在 H5 上调用手机native的功能.现有的Cordova插件能满足平时大部分的开发需求,然而,有时候找不到合 ...
- 自定义Cordova插件(基础篇)
cordova自定义插件 注意:存放自定义cordova插件目录不能有空格可能会报错 cordova的安装 下载node.js,安装完成后你可以在命令行中使用node和npm. 安装cordova使用 ...
- 自定义Cordova插件详解
一.Cordova的基础点 在混合式应用中,我们通过现有的Cordova插件,可以轻松的在 H5 上调用手机native的功能.现有的Cordova插件能满足平时大部分的开发需求,然而,有时候找不到合 ...
- Android H5混合开发(2):自定义Cordova插件
前言 Cordova虽然定义了很多基础的插件,供H5端使用原生设备的功能. 但是,如果业务相关的功能,需要提供给H5端使用,那么,就需要我们自定义插件了. 这个"自定义"不是指由A ...
- (转)JQM 日期插件 mobiscroll Demo
(原)http://www.wglong.com/main/artical!details?id=11 JQM 日期插件 mobiscroll Demo 2013-04-25 / 分类:Jquery ...
- 【No.4 Ionic】修改 cordova 插件
在使用 cordova 过程 使用的插件 有可能不能满足个人需求,就需要修改,下面就直接说说步骤 插件结构 我用 cordova-plugin-inappbrowser 插件 讲解 在目录中有个 sr ...
随机推荐
- AngularJs的UI组件ui-Bootstrap分享(八)——Tooltip和Popover
tooltip和popover是轻量的.可扩展的.用于提示的指令.对于移动端来讲,这两个指令虽然可以正常工作,但是从用户体验的角度并不推荐使用. 先说tooltip,tooltip有三种使用方式: ( ...
- Android Context上下文解析
1.Context概念 Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源.启动一个新的Activity.获取系统 ...
- python中if __name__ == '__main__': 的解析
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一 ...
- 生成模型(Generative)和判别模型(Discriminative)
生成模型(Generative)和判别模型(Discriminative) 引言 最近看文章<A survey of appearance models in visual object ...
- 如何让UIView中的Button点击之后跳转到另一个ViewController上去,ViewController上也有一个按钮 可以返回
第一种方法:如果使用导航第一个按钮方法:[self.navigationController pushViewController:secondVC animated:YES];第二个按钮方法:[se ...
- 实用工具【SqlPrompt】 【Subline】 【XMind】 【PhotoShop】 【TakeColor】 【Q+】本次只讨论SqlPrompt
SqlPrompt[Sqlserver智能提示插件] 1.SqlPrompt可实现sql智能提示,并且会自动关键字大写,如select * from 表名[表名包含的字符],如果实在不知道表名可以按c ...
- mozilla firefox 安装flash player
下载 flash player http://get.adobe.com/cn/flashplayer/ for linux .tar.gz文件 install_flash_player_11_li ...
- 第二章:搭建Android开发环境
通过对本章节内容的阅读,了解了Android底层开发所需要的各种开发工具,以及在Linux环境下怎样搭建Android底层开发环境,在Linux系统上开发Android应用程序,需要安装Linux版本 ...
- PAT题库-1064. Complete Binary Search Tree (30)
1064. Complete Binary Search Tree (30) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...
- 自动化工具selenium
selenium web 自动化工具 selenium 不仅仅可以做web自动化,还可以考虑用于爬虫 java.python..net都可使用,具体使用方法google 构建Python+Seleni ...