如何从phonegap android插件返回数组或其他集合元素类型

hkg*_*ile 4 java android cordova

这是我在java插件中测试代码的一部分(我正在使用phonegap 2.7).

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

  try {

      String[] result;
      result = new String[10];
      result[0] = "test1 success";
      result[1] = "test2 success";
      callbackContext.success(result);  //error

  } catch(Exception ee) {
      System.out.print("ee:"+ee.getMessage());
  }
  return true;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 如何从android phonegap插件返回数组,以便我可以在javascript中获取数组?

  2. 哪个数据类型要比返回的数组(JSONArray?)好?

谢谢

Upv*_*ote 7

PluginResult类是你的朋友:

public PluginResult(Status status, JSONObject message) {
    this.status = status.ordinal();
    this.message = (message != null) ? message.toString(): "null";
}
Run Code Online (Sandbox Code Playgroud)

要么

public PluginResult(Status status, String message) {
    this.status = status.ordinal();
    this.message = JSONObject.quote(message);
}
Run Code Online (Sandbox Code Playgroud)

在您的情况下,它接受json对象或字符串.所以要返回你需要的json数组

JSONObject json = new JSONObject();
json.put("foo", "bar");

callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, json));
Run Code Online (Sandbox Code Playgroud)