在cordova中, 你可能需要将一些数据返回到视图(不仅是简单的字符串)。可以使用JSON将这些数据有效地发送到视图, 但是我们不会手动从数组创建JSON字符串, 因为这不是一个好习惯。
使用Java android将信息从Java发送到Cordova中的javascript:
我们需要在类中包括以下组件, 然后我们才能创建json数组和对象(如果使用try and catch block, 则需要包括JSONException)。
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
在javascript中, 创建对象确实非常容易, 你只需要为对象分配属性名称即可, 仅此而已(使用点或括号表示法)。 Java也很简单, 但是有所不同, 我们将创建一个JSONObject类型的变量, 并使用PUT函数添加一个键。
JSONObject item = new JSONObject();
item.put("name", "filename.java");
item.put("filepath", "aimaginarypath");
// in javascript this is something like// {filepath:"aimaginarypath", name:"filename.java"}
可变项包含名称和文件路径键, 作为普通的javascript对象。
在javascript中, 我们需要调用push函数将项目添加到现有数组中。与java相同, 只是带有其他名称(添加)。
JSONArray jsonArray = new JSONArray();
jsonArray.put("item number 1");
jsonArray.put("item number 2");
// in javascript this is something like :// ["item number 1", "item number 2"]
要发送数组或对象, 我们将在变量上调用toString方法。这是在Cordova中发送结果的两种方法(请记住, callbacks =类的callbackContext变量):
异步(使用threadPool)
JSONArray jsonArray = new JSONArray();
jsonArray.put("item number 1");
// send the JSONArray using jsonArray.toString();
PluginResult result = new PluginResult(PluginResult.Status.OK, jsonArray.toString());
result.setKeepCallback(true);
callbacks.sendPluginResult(result);
“ 同步”
JSONObject item = new JSONObject();
item.put("name", "filename.java");
callbacks.success(item.toString());
【如何将JSON对象从Java返回到javascript(cordova)】然后, 你只需要使用Javascript(JSON.parse(jsonstring))进行解析, 就可以玩得开心!
推荐阅读
- 如何在Cordova应用程序中检索网络(互联网连接)信息
- 如何使用Cordova从设备上的base64字符串中保存PDF
- 如何在Cordova Android项目中使用Crosswalk WebView
- 如何在Cordova应用程序中使用Dropbox
- 如何在Android和iOS的Cordova(Phonegap,ionic)中使用指纹认证
- android studio错误(无法启动守护程序进程)
- Android Studio-JAVA_HOME没有指向有效的JVM安装
- Sinatra APP与树莓上的工头一起运行在家庭网络中无法访问
- Android应用程序中的底部导航栏