修改调用js方法的参数传递方式

This commit is contained in:
cebgcontract 2022-07-20 17:03:10 +08:00
parent 8126373f2c
commit cecbcd212e
3 changed files with 6 additions and 11 deletions

View File

@ -83,8 +83,8 @@ NS_CC_BEGIN
return ok;
}
bool addToArgArray(se::ValueArray *args, std::string strVal) {
// std::string strVal(valChar);
bool addToArgArray(se::ValueArray *args, char *valChar) {
std::string strVal(valChar);
se::Value tmpVal;
bool ok = true;
ok &= std_string_to_seval(strVal, &tmpVal);
@ -122,13 +122,9 @@ NS_CC_BEGIN
}
char *JcWallet::runJsMethod(std::shared_ptr<JSMethodParam> data) {
se::ValueArray args;
cocos2d::log("thread: %ld call method %s", uv_thread_self(), data->methodName.c_str());
for (int i = 0; i < data->paramList.size(); i++) {
addToArgArray(&args, data->paramList[i]);
}
se::Value value;
bool ok = runGlobalMethod(data->methodName.c_str(), args, &value);
bool ok = runGlobalMethod(data->methodName.c_str(), data->args, &value);
static std::string result;
if (ok && !value.isNullOrUndefined()) {
result = value.toString();
@ -157,8 +153,7 @@ NS_CC_BEGIN
data->paramCount = paramCount;
for (int i = 0; i < paramCount; i++) {
char *arg = *(paramList + i);
std::string strVal(arg);
data->paramList.push_back(strVal);
addToArgArray(&data->args, arg);
}
std::shared_ptr<JSMethodParam> params(data);
RUN_IN_SERVERTHREAD(JcWallet::getInstance()->runJsMethod(params));

View File

@ -13,7 +13,7 @@ NS_CC_BEGIN
struct JSMethodParam {
std::string methodName;
int paramCount;
std::vector<std::string> paramList;
se::ValueArray args;
};
bool addToArgArray(se::ValueArray *args, std::string val);

View File

@ -1,7 +1,7 @@
console.log('>>hi tiny wallet3')
function initWallet(password) {
if (!jc.wallet) {
if (typeof jc === 'undefined' || typeof jc.wwallet === 'undefined') {
var wallet = new jcwallet.default(password);
}
return jc.wallet.currentAccount().address;