首页 > 编程 > JavaScript > 正文

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

2019-11-20 09:15:45
字体:
来源:转载
供稿:网友

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 的分是: Success Callback, Failure Callback, Registered Plugin name:就是在XML文件配置的那个所对应的name,  // 'hello'是传入Java文件的execute方法中的参数String action   // name ( HTML 的)  return PhoneGap.exec(successCallback, failureCallback, 'PluginTest', 'hello', [str1,str2]);};// 这里是 PhoneGap Plugin 的,Plugin 的名有 Native Class 的名打了,就是我入的那些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方法并互相传参的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表