Добавьте дополнительные аргументы в функцию cordova.exec - PullRequest
0 голосов
/ 08 июня 2018

У меня есть вопрос, я использую плагин в Cordova, но мне нужно передать 2 аргумента, я хочу знать, может ли эта структура быть внутри функции 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;
}

Я надеюсь, что вы можете мне помочь или немного лучше понять!

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Вы можете передать любое количество аргументов в массиве, как показано ниже.

 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;
}
0 голосов
/ 08 июня 2018

args - это массив, поэтому, если вам нужно иметь несколько параметров, просто поместите эти параметры в массив, а не пытайтесь добавить второй массив, содержащий только один элемент:

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

И затем на Javaсторона вы получите свои строки на args.optString(0) и args.optString(1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...