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 的花括号里面配置
- {
- "file": "plugins/intent.js",
- "id": "org.apache.cordova.intent",
- "merges": [
- "navigator.intent"
- ]
- },
file 代表 javascript写的接口位置
id 代表 唯一
merges 代表你在 javascript中调用该接口的语句 (类似activity中的 getApplication() 等等 ;就是个调用语句)
在module.exports.metadata 中配置id
标号随意
添加asset/plugins
intent.js的路径要和上步中配置的file路径一致
贴上intent.js的接口代码
- cordova.define("org.apache.cordova.intent", function(require, exports, module) {
- var exec = require(‘cordova/exec‘);
- module.exports = {
- /**
- * 一共5个参数
- 第一个 :成功回调
- 第二个 :失败回调
- 第三个 :将要调用的类的配置名字(在config.xml中配置 稍后在下面会讲解)
- 第四个 :调用的方法名(一个类里可能有多个方法 靠这个参数区分)
- 第五个 :传递的参数 以json的格式
- */
- demo: function(mills) {
- exec(function(winParam){
- alert(winParam);
- }, null, "Demo", "demo", [mills]);
- },
- };
- });
修改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>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。