码迷,mamicode.com
首页 > 移动开发 > 详细

android phonegap插件开发方法 plugin

时间:2014-12-10 18:10:26      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   io   ar   color   os   sp   

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

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

cordova _plugins的结构

module.exports= [{}];

module.exports.metadata = { }

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

[javascript] view plaincopybubuko.com,布布扣bubuko.com,布布扣
  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  

标号随意  

bubuko.com,布布扣


添加asset/plugins

bubuko.com,布布扣  

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

 

贴上intent.js的接口代码

[javascript] view plaincopybubuko.com,布布扣bubuko.com,布布扣
  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文件

bubuko.com,布布扣

<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>











android phonegap插件开发方法 plugin

标签:android   style   blog   http   io   ar   color   os   sp   

原文地址:http://blog.csdn.net/proud2005/article/details/41847779

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!