Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从Android中的cordova插件获取返回值?_Javascript_Java_Android_Cordova - Fatal编程技术网

Javascript 如何从Android中的cordova插件获取返回值?

Javascript 如何从Android中的cordova插件获取返回值?,javascript,java,android,cordova,Javascript,Java,Android,Cordova,我编写了一个Java类,它是cordova插件的一部分,主要代码是: public class ClassName extends CordovaPlugin { protected void pluginInitialize() {} public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (action

我编写了一个Java类,它是cordova插件的一部分,主要代码是:

public class ClassName extends CordovaPlugin {

  protected void pluginInitialize() {}

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

    if (action.equals("getData")) {
      CallbackContext callback = null;

      Test ts  = new Test();
      String result = ts.TestNow();

      PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, result);
      pluginResult.setKeepCallback(true);
      callbackContext.sendPluginResult(pluginResult);

      return true;
    }
    return false;
  }
}
这是插件的js代码:

cordova.define("cordova-plugin-NAME.PLUGINNAME", function(require, exports, module) {
module.exports = {
  getdata: function(message, successCallback) {
    cordova.exec(successCallback, null, "ClassName", "getData", [message]);
  }
};
});
这是我用来调用插件函数的js:

function myFunc(){
 alert('Function started');
 ClassName.getdata(successCallback, null);
 }

document.addEventListener('DOMContentLoaded', function(){
    document.getElementById('test').addEventListener('click', myFunc);
});
我有两个问题:

1) 我的java类在输出字符串结果时,如何将结果传递给javascript函数(myfunc())


2) 我不明白“successCallback”的功能是什么,有人能给我举个例子吗?

从JAVA检索callbackContext.sendPluginResult(pluginResult)时会执行JS中的successCallback

SuccessCallback应该如下所示:

successCallback:function(event){ 
    .... Do things with the 'event' object received from JAVA
}

“event”对象是从JAVA应答的对象。

看看,我几天前就应答了,它与您的请求非常相似: