一个继承自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
相关推荐
- 该模式允许开发者在JavaScript中编写前端逻辑,并通过PhoneGap插件调用原生Java功能。 - 通过此方法,JavaScript可利用Java强大的后端处理能力,实现复杂的功能需求。 - 提供了具体实例代码,帮助开发者理解并实现...
标题"phonegap js调用本地java"指的是使用PhoneGap中的JavaScript代码调用Android平台上的Java代码。在PhoneGap 3.5版本中,这个过程主要涉及到自定义插件的开发。下面将详细介绍这个过程: 1. **创建自定义插件**...
开发者可以通过调用插件提供的API,轻松地在他们的PhoneGap应用中集成扫码功能,无需深入了解原生平台的扫码实现细节。 在iOS 10上,用户报告了使用此插件时遇到的问题,主要表现为内存泄漏,最终可能导致应用突然...
在PhoneGap中,Plugin是连接Web层和Native层的桥梁,它们是用Java(对于Android)或Objective-C/Swift(对于iOS)编写的,并且通过Cordova/PhoneGap的Bridge机制与JavaScript进行通信。 首先,创建一个自定义Plugin...
4. **安装和配置**:在使用 "jpush-phonegap-plugin-master" 之前,开发者需要在 PhoneGap 项目中添加插件,这通常通过命令行工具如 `cordova` 或 `phonegap` 完成。同时,还需要在 JPush 平台上注册应用,获取 ...
1. **安装插件**:在PhoneGap项目中,通过命令行工具或配置文件(config.xml)添加jpush-phonegap-plugin插件。 2. **配置APPID和APPKEY**:获取极光推送后台分配的APPID和APPKEY,将它们配置到插件中,以连接JPush...
这个"Phonegap-Plugin样例"压缩包显然包含了用于学习和实践PhoneGap插件开发的资源,这对于初学者或者希望提升PhoneGap技能的人来说非常有价值。 PhoneGap的核心理念是利用Web技术开发移动应用,然后通过它的SDK将...
一个Android原生activity与phonegap交互的例子, java调用js,js调用java 工程中是一个嵌套了phonegap的activity ,外层是android的activity,内层framelayout中是phonegap,完成了交互的简单例子
PhoneGap Eclipse PlugIn for Android是一款专为Android开发者设计的插件,它允许开发人员使用Eclipse IDE进行PhoneGap应用的构建和调试。PhoneGap是一种开源框架,它使开发者能够使用HTML、CSS和JavaScript来创建跨...
PhoneGap插件条形码扫描仪 =============================== 适用于Cordova / PhoneGap的跨平台BarcodeScanner。 遵循,因此可与一起。 安装 ... phonegap plugin add phonegap-plugin-barcodesc
在"PhoneGap开发中JS与Android之间的交互"这一主题中,我们将深入探讨如何通过JavaScript调用Android的API,以及如何处理Android与JavaScript的通信。 1. **PhoneGap架构** PhoneGap基于Cordova,它的架构分为三个...
这个“PhoneGap js调用 android demo”是PhoneGap技术的一个实例,展示了如何通过JavaScript来调用Android平台的原生功能。 首先,我们需要理解PhoneGap的核心原理。PhoneGap提供了一个桥接机制,通过JavaScript...
这个类扩展了CordovaPlugin,实现了`execute`方法来处理JavaScript的调用,并通过`Activity`的意图(Intent)来启动相机应用或打开图库。 在本Demo中,开发者已经实现了上述功能并编译通过。为了深入了解和使用这个...
对于Android平台,这些插件通常由Java编写,然后通过PhoneGap的桥接机制与JavaScript交互。在Android中,GPS定位涉及到Android的Location API,因此我们需要创建一个自定义的PhoneGap插件来调用这些API。 二、...
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
2. **JavaScript Interface**:为了使JavaScript能够调用Android的原生方法,我们需要在Android的Java代码中定义一个接口,并通过WebView的`addJavascriptInterface()`方法将其暴露给JavaScript。这样,JavaScript就...
PhoneGap的LocalNotification插件就是解决这个问题的桥梁,它封装了原生的Android通知API,并通过JavaScript暴露出来,让Web开发者可以方便地调用。 要使用这个插件,首先要在PhoneGap项目中安装它。这通常通过使用...