增加一个回调给c#的方法
This commit is contained in:
parent
c691b25651
commit
033ca9d1bd
@ -1,4 +1,5 @@
|
||||
#include "JcWallet.h"
|
||||
#include "WalletEvent.h"
|
||||
#include <string>
|
||||
#include "cocos/scripting/js-bindings/jswrapper/SeApi.h"
|
||||
#include "cocos/scripting/js-bindings/manual/jsb_global.h"
|
||||
@ -16,7 +17,6 @@ NS_CC_BEGIN
|
||||
|
||||
cocos2d::Application *g_app = nullptr;
|
||||
JcWallet *JcWallet::_instance = nullptr;
|
||||
static std::string result;
|
||||
bool _isStarted = false;
|
||||
|
||||
JcWallet::JcWallet() {
|
||||
@ -45,7 +45,10 @@ NS_CC_BEGIN
|
||||
char* JcWallet::initWallet() {
|
||||
se::Value value;
|
||||
jsb_run_code("jc.wallet.currentAccount().address", &value);
|
||||
result = value.toString();
|
||||
static std::string result = value.toString();
|
||||
WalletEvent::Emit("wallet_inited", "{1}");
|
||||
WalletEvent::Emit("wallet_inited", "{2}");
|
||||
WalletEvent::Emit("wallet_inited", "{3}");
|
||||
return const_cast<char*>(result.c_str());
|
||||
}
|
||||
|
||||
@ -55,14 +58,14 @@ NS_CC_BEGIN
|
||||
std::string jsCode = "jc.wallet.loginSign('" + nonce + "','" + tips + "')";
|
||||
se::Value value;
|
||||
jsb_run_code(jsCode, &value);
|
||||
result = value.toString();
|
||||
static std::string result = value.toString();
|
||||
return const_cast<char*>(result.c_str());
|
||||
}
|
||||
|
||||
char* JcWallet::createAccount() {
|
||||
se::Value value;
|
||||
jsb_run_code("jc.wallet.createAccount()", &value);
|
||||
result = value.toString();
|
||||
static std::string result = value.toString();
|
||||
return const_cast<char*>(result.c_str());
|
||||
}
|
||||
|
||||
@ -71,10 +74,19 @@ NS_CC_BEGIN
|
||||
std::string jsCode = "jc.wallet.importAccount('" + key + "')";
|
||||
se::Value value;
|
||||
jsb_run_code(jsCode, &value);
|
||||
result = value.toString();
|
||||
static std::string result = value.toString();
|
||||
return const_cast<char*>(result.c_str());
|
||||
}
|
||||
|
||||
char* JcWallet::runJsMethod(const char *methodName, const char *paramObj) {
|
||||
std::string methodStr(methodName);
|
||||
std::string paramsStr(paramObj);
|
||||
std::string jsCode = "jc.wallet."+methodStr+"('" + paramsStr + "')";
|
||||
se::Value value;
|
||||
jsb_run_code(jsCode, &value);
|
||||
static std::string result = value.toString();
|
||||
return const_cast<char*>(result.c_str());
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
@ -91,6 +103,9 @@ NS_CC_BEGIN
|
||||
char* importAccount(const char *privateKey) {
|
||||
return JcWallet::getInstance()->importAccount(privateKey);
|
||||
}
|
||||
char* runWalletMethod(const char *methodName, const char *paramObj) {
|
||||
return JcWallet::getInstance()->runJsMethod(methodName, paramObj);
|
||||
}
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
@ -11,6 +11,7 @@ NS_CC_BEGIN
|
||||
char* signLogin(const char *nonceChar, const char *tipChar);
|
||||
char* createAccount();
|
||||
char* importAccount(const char *privateKey);
|
||||
char* runJsMethod(const char *methodName, const char *paramObj);
|
||||
private:
|
||||
static JcWallet* _instance;
|
||||
};
|
||||
|
16
Classes/WalletEvent.cpp
Normal file
16
Classes/WalletEvent.cpp
Normal file
@ -0,0 +1,16 @@
|
||||
//
|
||||
// WalletEvent.cpp
|
||||
// Unity-iPhone
|
||||
//
|
||||
// Created by zhl on 2022/7/13.
|
||||
//
|
||||
|
||||
#include "WalletEvent.h"
|
||||
// 定义函数指针,用来接受C#的委托
|
||||
void(*WalletEvent::Emit)(char* name, char* message);
|
||||
|
||||
// 注册C#的委托
|
||||
void registWalletEventDelegate(void(*Emit)(char* name, char* message))
|
||||
{
|
||||
WalletEvent::Emit = Emit;
|
||||
}
|
22
Classes/WalletEvent.h
Normal file
22
Classes/WalletEvent.h
Normal file
@ -0,0 +1,22 @@
|
||||
//
|
||||
// WalletEvent.h
|
||||
// Unity-iPhone
|
||||
//
|
||||
// Created by zhl on 2022/7/13.
|
||||
//
|
||||
|
||||
|
||||
#pragma once
|
||||
extern "C"
|
||||
{
|
||||
class WalletEvent
|
||||
{
|
||||
public:
|
||||
static void (*Emit)(char* name, char* message);
|
||||
};
|
||||
|
||||
// 注册C#的委托
|
||||
void registWalletEventDelegate(void (*Emit)(char* name, char* message));
|
||||
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ endif
|
||||
LOCAL_SRC_FILES := hellojavascript/main.cpp \
|
||||
../../Classes/AppDelegate.cpp \
|
||||
../../Classes/jsb_module_register.cpp \
|
||||
../../Classes/WalletEvent.cpp \
|
||||
../../Classes/JcWallet.cpp \
|
||||
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
|
||||
|
Loading…
x
Reference in New Issue
Block a user