diff --git a/Classes/JcWallet.cpp b/Classes/JcWallet.cpp index ae08e8c..f245870 100644 --- a/Classes/JcWallet.cpp +++ b/Classes/JcWallet.cpp @@ -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 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 params(data); RUN_IN_SERVERTHREAD(JcWallet::getInstance()->runJsMethod(params)); diff --git a/Classes/JcWallet.h b/Classes/JcWallet.h index 1c42832..114f547 100644 --- a/Classes/JcWallet.h +++ b/Classes/JcWallet.h @@ -13,7 +13,7 @@ NS_CC_BEGIN struct JSMethodParam { std::string methodName; int paramCount; - std::vector paramList; + se::ValueArray args; }; bool addToArgArray(se::ValueArray *args, std::string val); diff --git a/js/main.js b/js/main.js index fddb5bd..f185558 100644 --- a/js/main.js +++ b/js/main.js @@ -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;