修改调用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; return ok;
} }
bool addToArgArray(se::ValueArray *args, std::string strVal) { bool addToArgArray(se::ValueArray *args, char *valChar) {
// std::string strVal(valChar); std::string strVal(valChar);
se::Value tmpVal; se::Value tmpVal;
bool ok = true; bool ok = true;
ok &= std_string_to_seval(strVal, &tmpVal); ok &= std_string_to_seval(strVal, &tmpVal);
@ -122,13 +122,9 @@ NS_CC_BEGIN
} }
char *JcWallet::runJsMethod(std::shared_ptr<JSMethodParam> data) { 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()); 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; 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; static std::string result;
if (ok && !value.isNullOrUndefined()) { if (ok && !value.isNullOrUndefined()) {
result = value.toString(); result = value.toString();
@ -157,8 +153,7 @@ NS_CC_BEGIN
data->paramCount = paramCount; data->paramCount = paramCount;
for (int i = 0; i < paramCount; i++) { for (int i = 0; i < paramCount; i++) {
char *arg = *(paramList + i); char *arg = *(paramList + i);
std::string strVal(arg); addToArgArray(&data->args, arg);
data->paramList.push_back(strVal);
} }
std::shared_ptr<JSMethodParam> params(data); std::shared_ptr<JSMethodParam> params(data);
RUN_IN_SERVERTHREAD(JcWallet::getInstance()->runJsMethod(params)); RUN_IN_SERVERTHREAD(JcWallet::getInstance()->runJsMethod(params));

View File

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

View File

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