向 cordova.exec 函数添加额外的参数

Posted

技术标签:

【中文标题】向 cordova.exec 函数添加额外的参数【英文标题】:Add additional args to cordova.exec function 【发布时间】:2018-06-08 00:04:42 【问题描述】:

我有一个问题,我在cordova中使用了一个插件,但是我需要传递2个args,我想知道这个结构是否可以在exec函数中

我需要添加“[str2]”

cordova.exec(callback, function(err) 
        callback('Nothing to echo.');
    , "Echo", "echo", [str], [str2]);

android : 我需要添加 JSONArray args2

 public boolean execute(String action, JSONArray args, JSONArray args2,CallbackContext callbackContext) throws JSONException 
    //..
         catch (Exception e) 
          callbackContext.error("Error");
        
        return true;
    
    return false;

希望你能帮助我或者理解的更好一点!

【问题讨论】:

【参考方案1】:

您可以在数组中传递任意数量的参数,如下所示。

 cordova.exec(callback, function(err) 
    callback('Nothing to echo.');
 , "Echo", "echo", [arg1, arg2, arg3,....]);

在 android 中访问代码时,您可以这样做

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException 
    data1 = args.optString(0);
    data2 = args.optString(1);
    .
    .
    .
     catch (Exception e) 
      callbackContext.error("Error");
    
    return true;

return false;

【讨论】:

感谢您的回答,它帮助了我并且它已经完成了,我唯一可以补充的是,在 Android 中我通过以下方式获取数组: public boolean execute(String action, JSONArray args, CallbackContext callbackContext) 抛出 JSONException String name = args.getString(0); JSONArray 状态 = args.getJSONArray(2); catch (Exception e) callbackContext.error("Error al obtener los datos iniciales"); 返回真; 返回假; 【参考方案2】:

args 是一个数组,因此如果您需要多个参数,只需将此参数放入数组中,而不是尝试添加仅包含一个元素的第二个数组:

cordova.exec(callback, function(err) 
        callback('Nothing to echo.');
    , "Echo", "echo", [str, str2]);

然后在 java 端,您可以通过 args.optString(0)args.optString(1) 获取字符串

【讨论】:

以上是关于向 cordova.exec 函数添加额外的参数的主要内容,如果未能解决你的问题,请参考以下文章

cordova.exec 参数中的奇怪行为

如何向 ajax 文件上传添加额外的 POST 参数?

使 cordova.exec 同步

函数向输入参数添加维度时的类型稳定性问题

Symfony2 和 Propel 包:向 Propel 参数转换器添加额外的过滤器

Phonegap 2.1 cordova.exec 更新