一个继承自Plugin的类,并实现execute方法。
public class test01 extends Plugin{
public static final String ACTION = "test";
@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
// TODO Auto-generated method stub
PluginResult result = null;
JSONObject jsonObj = new JSONObject();//可以返回给JS的JSON数据
if(ACTION.equals(action)){
try {
String testData1 = data.getString(0);//JS中传来的JSON格式的数据
String testData2 = data.getString(1);
Log.e("test!!!", "This is testData1 " + testData1);
Log.e("test!!!", "This is testData2 " + testData2);
jsonObj.put("testData1", testData1 + " after Plugin");
jsonObj.put("testData2", testData2 + " after Plugin");
result = new PluginResult(PluginResult.Status.OK, jsonObj);
//返回成功时,将Java代码处理过的JSON数据返回给JS
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
}
2.在xml中注册
在\res\xml\plugins.xml文件中,加入
<plugin name="test01" value="包名.test01"/>
name指的是他的别名(貌似必须与类名相同),value是他真正的类名
3.在js中注册此插件
在cordova-1.7.0.js加入如下函数
var testAndroid01API=function(){};
testAndroid01API.prototype.test = function(success, error, testData1, testData2){
return PhoneGap.exec( success, error,
'test01', //java类名,plugins.xml中注册的名字
'test', //action,Java方法中用来匹配的字段
[testData1, testData2] //params 传递的参数,Array形式
);
};
PhoneGap.addConstructor(function() {
PhoneGap.addPlugin('testAndroid01API', new testAndroid01API());
});
4.在js中调用
<script type="text/javascript" src="cordova-1.7.0.js"></script>
<script type="text/javascript" src="json.js"></script>
<script type="text/javascript">
var test01 = function(){
var success = function(data){ //当Java方法返回成功时,通过data.key 获得Java中传来的JSONObject数据
alert("1111111 : " + data.testData1 + ' and 2222222 : ' + data.testData2);
};
var error = function(e){
alert(e);
};
window.plugins.testAndroid01API.test(success, error, "first test data", "second test data");
//"first test data", "second test data"是向Java传递的参数
}
</script>
5.在html中点击按钮测试
<button type="button" onclick="test01()">Click Me!</button>
LogCat中会看到由JS传来的数据,随后页面会alert Java传回JS的数据。
原文地址:http://www.cnblogs.com/wuwangSaber/archive/2012/05/28/2521321.html
相关推荐
Js通过PhoneGap调用Java方法并互相传参的。 一、JAVA代码 写一个类,该类继承自Plugin并重写execute方法。 import org.json.JSONArray; import android.app.Activity; import android.app.AlertDialog; import ...
cordova 3.5 , phonegap用 js调用本地java 是通过自定义插件来实现的。由问题,具体步骤可以参考我的博文
cordova扫码插件phonegap-plugin-barcodescanner,修复了在ios10上面的内存泄漏导致的闪退bug
jpush-phonegap-plugin 官网上下载的 。。。。。。。。
一个Android原生activity与phonegap交互的例子, java调用js,js调用java 工程中是一个嵌套了phonegap的activity ,外层是android的activity,内层framelayout中是phonegap,完成了交互的简单例子
通过自定义plugin插件实现了javascript与Android的交互。
PhoneGap Eclipse PlugIn for Android1.2.91
Phonegap-Plugin样例,很好的快速入门phonegap开发,希望对你有帮助
ionic2 极光推送插件
PhoneGap插件条形码扫描仪=======================...安装这需要phonegap 7.1.0+(当前稳定的v8.0.0) phonegap plugin add phonegap-plugin-barcodescanner也可以通过repo url直接安装(不稳定) phonegap plugin add ...
pushwoosh-phonegap-plugin, Pushwoosh PhoneGap构建插件 Cordova Pushwoosh推送通知插件 通过Pushwoosh为 cordova/phonegap跨平台推送通知 Cordova使用 npm ( 需要 cordova 7.0 ):cordova
在PHONEGAP新手开发插件的时候,总会遇到一些NATIVE调用JS的代码问题,这里给出了一个OBJECTIVE-C 与 JS通过UIWEBVIEW进行相互调用的例子,给定了同步调用与异步调用的方法更多详细的部分请参考KAITIREN博客;
phonegap开发中JS与Android之间的交互
phonegap-plugin-contentsync 下载并缓存远程托管的压缩...安装这需要phonegap 5.0+(当前稳定的v1.2.0) phonegap plugin add phonegap-plugin-contentsync也可以通过repo url直接安装(不稳定) phonegap plugin add ...
PhoneGap js调用 android的demo demo简单易懂,可以直接运行的
jpush-phonegap-plugin jpush的phonegap插件,包括iOS和Android源代码以及js。 第一个版本仅为js添加setTagAndAlias函数,因此您可以在用户登录html应用程序后调用此函数。 我将尽快向js调用添加通知。
phoneGap与android的activity交互例子,互相调用函数,js,java的交互.zip
PhoneGap插件条形码扫描仪 =============================== 适用于Cordova / PhoneGap的跨平台BarcodeScanner。 遵循,因此可与一起。 安装 ... phonegap plugin add phonegap-plugin-barcodesc