android phonegap插件开发方法 plugin

参考http://blog.csdn.net/aaawqqq/article/details/20401111

配置 asset/www/cordova _plugins.js 文件

cordova _plugins的结构

module.exports= [{}];

module.exports.metadata = { }

在module.exports 的花括号里面配置

[javascript]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. {  
  2.         "file""plugins/intent.js",  
  3.         "id""org.apache.cordova.intent",  
  4.         "merges": [  
  5.             "navigator.intent"  
  6.         ]  
  7.     },  

 

file 代表  javascript写的接口位置

id   代表  唯一

merges   代表你在 javascript中调用该接口的语句    (类似activity中的 getApplication() 等等 ;就是个调用语句)

 

在module.exports.metadata 中配置id  

标号随意  



添加asset/plugins

  

intent.js的路径要和上步中配置的file路径一致

 

贴上intent.js的接口代码

[javascript]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. cordova.define("org.apache.cordova.intent"function(require, exports, module) {   
  2.   
  3. var exec = require('cordova/exec');  
  4.   
  5.   
  6.   
  7. module.exports = {  
  8.   
  9.     /** 
  10.      * 一共5个参数 
  11.        第一个 :成功回调 
  12.        第二个 :失败回调 
  13.        第三个 :将要调用的类的配置名字(在config.xml中配置 稍后在下面会讲解) 
  14.        第四个 :调用的方法名(一个类里可能有多个方法 靠这个参数区分) 
  15.        第五个 :传递的参数  以json的格式 
  16.      */  
  17.     demo: function(mills) {  
  18.         exec(function(winParam){  
  19.             alert(winParam);  
  20.         }, null"Demo""demo", [mills]);  
  21.     },  
  22. };  
  23.   
  24. });  
修改res/xml/config.xml文件


<feature name="Demo">
		<param name="android-package" value="org.apache.cordova.demo.Demo" />
	</feature>

name 为上步中的第三个参数
value为src中类的全路径
 
java处理类
package org.apache.cordova.demo;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import android.content.Context;
import android.os.Vibrator;

public class Demo extends CordovaPlugin {
	public Demo() {
	}

	/**
 * @param action js中传递的第四个参数
 * @param args js中传递的第五个参数
 * @param callbackContext 
 */
	public boolean execute(String action, JSONArray args,
			CallbackContext callbackContext) throws JSONException {
		if (action.equals("demo")) {
			cordova.getThreadPool().execute(new Runnable() {
				@Override
				public void run() {
					Vibrator vibrator = (Vibrator) Demo.this.cordova
							.getActivity().getSystemService(
									Context.VIBRATOR_SERVICE);
					vibrator.vibrate(500);
				}
			});
		}
		// 执行js传过来的success方法
		callbackContext.success();
		return true;
	}
}

调用
 
function intent() {          navigator.intent.demo(1);          }  


navigator.intent 为第一步中配置的merges
<span style="font-family: Arial, Helvetica, sans-serif;">demo为asset/plugins/intent.js中定义的demo:function()的demo</span>











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值