【问题标题】:How i can get return value from cordova plugin in Android?我如何从Android中的cordova插件获取返回值?
【发布时间】:2016-05-11 07:45:43
【问题描述】:

我写了一个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”的功能是什么,谁能给我举个例子?

【问题讨论】:

标签: javascript java android cordova


【解决方案1】:

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

sucessCallback 应该如下所示:

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

“事件”对象是从 JAVA 应答的对象。

【讨论】:

    猜你喜欢
    • 2018-07-13
    • 2014-11-09
    • 2019-12-30
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    相关资源
    最近更新 更多