android phonegap 插件,phonegap添加插件(android)

qt也开始支持android与ios,遗憾的是qwebkit不能在android于ios上使用,希望5.3能加入。为了能够实现跨移动平台,选择phonegap进行开发。phonegap的安装大家可以参照官网www.phonegap.com。目前最新版本为2.91,本人用的是2.90版。在这里简单简述下如何在phonegap下添加插件,使用js调用本地函数。

详细步骤可以参考官网:

http://docs.phonegap.com/zh/3.4.0/guide_platforms_android_plugin.md.html#Android%20%E5%A4%96%E6%8E%9B%E7%A8%8B%E5%BC%8F

如果你像我一样使用2.90的话官网的文档(3.4.0)是无法使用的,问题出在JS调用说明部分(其余部分可以参考官网),官方的文档例子为

cordova.exec(function(winParam) {},function(error) {},"service","action",

["firstArgument", "secondArgument", 42, false]);

如果按照官方的做法将会报错TypeError: Result of expression

‘cordova.exec‘ [undefined] is not a

function找不到这个方法,在网上搜了一圈都是调用cordova.exec()。没办法,只能是去看下源码,既然是cordova,就找cordova.js这个文件,果然在这个文件里cordova这个类没有exec方法。不过在程序里有一句

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

而cordova类里又有require。所以硬着头皮在要调用的js文件下使用下面的方式调用。结果这样代码是可以正常运行的,不过正确的方式是不是这样,这就不确定了,官方在文档这方面的更新还是不够快啊。

var exec = cordova.require("cordova/exec");

exec(callbackok,callbackerr,"AndroidAPIforJS", "test1", ["test"]);

接下来就说下我具体的实现步骤。

第一步实现android插件程序

69c5a8ac3fa60e0848d784a6dd461da6.pngpublic class AndroidAPIforJS extendsCordovaPlugin

{

@Overridepublic boolean execute(String action, JSONArray args, CallbackContext callbackContext) throwsJSONException

{if (action.equals("test"))

{

Log.e("plugintest","ok");

callbackContext.success();return true;

}else{

Log.e("plugintest","error");

callbackContext.error(0);return false;

}

}

}

69c5a8ac3fa60e0848d784a6dd461da6.png

第二步在config.xml中添加

第三部编写js代码

69c5a8ac3fa60e0848d784a6dd461da6.pngfunctioncallbackok()

{

alert("ok!");

}functioncallbackerr()

{

alert("error!");

}var exec = cordova.require("cordova/exec");

exec(callbackok,callbackerr,"AndroidAPIforJS", "test", ["test"]);

69c5a8ac3fa60e0848d784a6dd461da6.png

这里简单说明下exec的参数

callbackok:当调用插件成功时,且java程序执行callbackContext.success();被触发。

callbackerr:当调用插件失败时,且java程序执行callbackContext.error(0);被触发。

"AndroidAPIforJS":为插件类名。

"test":用于区分插件类调用方法。

["test"]:用于传参。

原文:http://www.cnblogs.com/missccq/p/3586858.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值