Js调用Java方法并互相传参的简单实例


Posted in Javascript onAugust 11, 2016

Js通过PhoneGap调用Java方法并互相传参的。

一、JAVA代码

写一个类,该类继承自Plugin并重写execute方法。

import org.json.JSONArray;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import com.phonegap.api.PhonegapActivity;
import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult;

public class PluginTest extends Plugin {

 public static String ACTION = "hello";

  public PluginTest() {
  }

  /**
   * Executes the request and returns PluginResult.
   *
   * @param action     The action to execute.
   * @param args       JSONArray of arguments for the plugin.
   * @param callbackId  The callback id used when calling back into JavaScript.
   * @return         A PluginResult object with a status and message.
   */
  @Override
  public PluginResult execute(String action, JSONArray args, String callbackId) {
    try {
      JSONObject jsonObj = new JSONObject();//可以返回给JS的JSON数据
      if (action.equals("hello")) {
        String str1= args.getString(0); //获取第一个参数
        String str2= args.getString(1); //获取第二个参数
        jsonObj.put("str1", str1+"1"); //把参数放到JSONObject对象中
        jsonObj.put("str2", str2+"2");  //把参数放到JSONObject对象中
      }
      PluginResult r = new PluginResult(PluginResult.Status.OK,jsonObj);
      return r;
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

三、Javascript文件中注册插件

新建一个.js文件,并把该文件和phonegap文件放在同一目录。(新建一个simplePlugin.js文件)

var SimplePlugin = function() {};

//str1和str2是传到JAVA的参数
SimplePlugin.prototype.hello = function(successCallback, failureCallback, str1, str2) {
  // exec ?鹊??捣?e是: Success Callback, Failure Callback, Registered Plugin name:就是在XML文件配置的那个所对应的name,
  // 'hello'是传入Java文件的execute方法中的参数String action 
  // name (? HTML ?鬟M?淼???
  return PhoneGap.exec(successCallback, failureCallback, 'PluginTest', 'hello', [str1,str2]);
};

// 这里是 PhoneGap Plugin 的??裕?lugin 的名??有 Native Class 的名??e打?了,就是我???????入的那些
PhoneGap.addConstructor(function() {
  // Register the javascript plugin with PhoneGap
  PhoneGap.addPlugin('simpleplugin', new SimplePlugin());  //simpleplugin是插件名称, new SimplePlugin()实例化的是本Javascript的类名 

});

四、在HTML文件中调用方法

在html文件中引入phonegap和插件的js文件,调用方法

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title>JAVA传参</title>
  <script src="phonegap.js"></script> <!--phonegap包-->
  <script src="js/jquery.js"></script>
  <script src="simplePlugin.js"></script><!--自定义的插件文件-->
  <script>  
  $(document).ready(function(e) {
    $("#btn_test").click(function(){
      window.plugins.simplePlugin.hello( 
        function(result) {
          alert("返回的第一个参数:"+result.str1+"返回的第二个参数"+result.str2);
        }, 
        function(error) {
        },
        "第一个参数",
        "第二个参数"
      );  
    });
  });
  </script>
  </head>
<body>
<button type="button" id="btn_test">Click Me!</button>
</body>
</html>

以上这篇Js调用Java方法并互相传参的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js类中的公有变量和私有变量
Jul 24 Javascript
JQuery对checkbox操作 (循环获取)
May 20 Javascript
ie8模式下click无反应点击option无反应的解决方法
Oct 11 Javascript
JQuery select(下拉框)操作方法汇总
Apr 15 Javascript
JavaScript基本语法讲解
Jun 03 Javascript
微信小程序之拖拽排序(代码分享)
Jan 21 Javascript
详解javascript中对数据格式化的思考
Jan 23 Javascript
js实现鼠标拖动功能
Mar 20 Javascript
vue中使用gojs/jointjs的示例代码
Aug 24 Javascript
实例讲解JS中pop使用方法
Jan 27 Javascript
vue 搭建后台系统模块化开发详解
May 01 Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
Aug 11 #Javascript
基于js对象,操作属性、方法详解
Aug 11 #Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
Aug 11 #Javascript
Node.js中防止错误导致的进程阻塞的方法
Aug 11 #Javascript
浅谈js中对象的使用
Aug 11 #Javascript
js倒计时简单实现代码
Aug 11 #Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
Aug 11 #Javascript
You might like
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
PHP生成条形图的方法
2014/12/10 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
js获取div高度的代码
2008/08/09 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
Django入门使用示例
2017/12/12 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
小学生自我评价范例
2013/09/24 职场文书
演讲稿开场白
2014/01/13 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
优秀班集体申报材料
2014/12/25 职场文书
公务员年度考核评语
2014/12/31 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
音乐剧猫观后感
2015/06/04 职场文书
西游记读书笔记
2015/06/25 职场文书