`
jinyanhui2008
  • 浏览: 320405 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

PhoneGap通过Plugin Js调用Java并互相传参

 
阅读更多

1.Java代码

一个继承自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调用Java方法并互相传参的简单实例

    - 该模式允许开发者在JavaScript中编写前端逻辑,并通过PhoneGap插件调用原生Java功能。 - 通过此方法,JavaScript可利用Java强大的后端处理能力,实现复杂的功能需求。 - 提供了具体实例代码,帮助开发者理解并实现...

    phonegap js调用本地java

    标题"phonegap js调用本地java"指的是使用PhoneGap中的JavaScript代码调用Android平台上的Java代码。在PhoneGap 3.5版本中,这个过程主要涉及到自定义插件的开发。下面将详细介绍这个过程: 1. **创建自定义插件**...

    cordova扫码插件phonegap-plugin-barcodescanner,修复了在ios10上面的内存泄漏导致的闪退bug

    开发者可以通过调用插件提供的API,轻松地在他们的PhoneGap应用中集成扫码功能,无需深入了解原生平台的扫码实现细节。 在iOS 10上,用户报告了使用此插件时遇到的问题,主要表现为内存泄漏,最终可能导致应用突然...

    自定义plugin插件实现phonegap与Android交互

    在PhoneGap中,Plugin是连接Web层和Native层的桥梁,它们是用Java(对于Android)或Objective-C/Swift(对于iOS)编写的,并且通过Cordova/PhoneGap的Bridge机制与JavaScript进行通信。 首先,创建一个自定义Plugin...

    jpush-phonegap-plugin-master

    4. **安装和配置**:在使用 "jpush-phonegap-plugin-master" 之前,开发者需要在 PhoneGap 项目中添加插件,这通常通过命令行工具如 `cordova` 或 `phonegap` 完成。同时,还需要在 JPush 平台上注册应用,获取 ...

    jpush-phonegap-plugin

    1. **安装插件**:在PhoneGap项目中,通过命令行工具或配置文件(config.xml)添加jpush-phonegap-plugin插件。 2. **配置APPID和APPKEY**:获取极光推送后台分配的APPID和APPKEY,将它们配置到插件中,以连接JPush...

    Phonegap-Plugin样例

    这个"Phonegap-Plugin样例"压缩包显然包含了用于学习和实践PhoneGap插件开发的资源,这对于初学者或者希望提升PhoneGap技能的人来说非常有价值。 PhoneGap的核心理念是利用Web技术开发移动应用,然后通过它的SDK将...

    phoneGap与android的activity交互例子,互相调用函数,js,java的交互

    一个Android原生activity与phonegap交互的例子, java调用js,js调用java 工程中是一个嵌套了phonegap的activity ,外层是android的activity,内层framelayout中是phonegap,完成了交互的简单例子

    PhoneGap Eclipse PlugIn for Android

    PhoneGap Eclipse PlugIn for Android是一款专为Android开发者设计的插件,它允许开发人员使用Eclipse IDE进行PhoneGap应用的构建和调试。PhoneGap是一种开源框架,它使开发者能够使用HTML、CSS和JavaScript来创建跨...

    cordova-barcodescanner:从phonegap-plugin-barcodescanner派生并更新IOS上的UI

    PhoneGap插件条形码扫描仪 =============================== 适用于Cordova / PhoneGap的跨平台BarcodeScanner。 遵循,因此可与一起。 安装 ... phonegap plugin add phonegap-plugin-barcodesc

    phonegap开发中JS与Android之间的交互

    在"PhoneGap开发中JS与Android之间的交互"这一主题中,我们将深入探讨如何通过JavaScript调用Android的API,以及如何处理Android与JavaScript的通信。 1. **PhoneGap架构** PhoneGap基于Cordova,它的架构分为三个...

    PhoneGap js调用 android demo

    这个“PhoneGap js调用 android demo”是PhoneGap技术的一个实例,展示了如何通过JavaScript来调用Android平台的原生功能。 首先,我们需要理解PhoneGap的核心原理。PhoneGap提供了一个桥接机制,通过JavaScript...

    PhoneGap Camera插件调用 Demo下载

    这个类扩展了CordovaPlugin,实现了`execute`方法来处理JavaScript的调用,并通过`Activity`的意图(Intent)来启动相机应用或打开图库。 在本Demo中,开发者已经实现了上述功能并编译通过。为了深入了解和使用这个...

    phonegap调用android插件实现GPS定位

    对于Android平台,这些插件通常由Java编写,然后通过PhoneGap的桥接机制与JavaScript交互。在Android中,GPS定位涉及到Android的Location API,因此我们需要创建一个自定义的PhoneGap插件来调用这些API。 二、...

    phonegap-plugin-barcodescanner:适用于Cordova PhoneGap的跨平台BarcodeScanner

    PhoneGap插件条形码扫描仪=======================...安装这需要phonegap 7.1.0+(当前稳定的v8.0.0) phonegap plugin add phonegap-plugin-barcodescanner也可以通过repo url直接安装(不稳定) phonegap plugin add ...

    pushwoosh-phonegap-plugin, Pushwoosh PhoneGap构建插件.zip

    pushwoosh-phonegap-plugin, Pushwoosh PhoneGap构建插件 Cordova Pushwoosh推送通知插件 通过Pushwoosh为 cordova/phonegap跨平台推送通知 Cordova使用 npm ( 需要 cordova 7.0 ):cordova

    phoneGap与android的activity交互例子,互相调用函数,js,java的交互.zip

    2. **JavaScript Interface**:为了使JavaScript能够调用Android的原生方法,我们需要在Android的Java代码中定义一个接口,并通过WebView的`addJavascriptInterface()`方法将其暴露给JavaScript。这样,JavaScript就...

    Phonegap-LocalNotification-master

    PhoneGap的LocalNotification插件就是解决这个问题的桥梁,它封装了原生的Android通知API,并通过JavaScript暴露出来,让Web开发者可以方便地调用。 要使用这个插件,首先要在PhoneGap项目中安装它。这通常通过使用...

Global site tag (gtag.js) - Google Analytics