增加一个通用的jni调用void方法的方法

This commit is contained in:
zhl 2023-02-08 16:11:31 +08:00
parent cf12e99545
commit 42e33b830d
3 changed files with 14 additions and 36 deletions

View File

@ -683,21 +683,16 @@ void signWithTiktokJNI(const std::string& funid)
JniHelper::callStaticVoidMethod(JCSDK, "signWithTiktok", funid); JniHelper::callStaticVoidMethod(JCSDK, "signWithTiktok", funid);
} }
void signWithFacebookJNI(const std::string& funid)
{
JniHelper::callStaticVoidMethod(JCSDK, "signWithFacebook", funid);
}
void signWithTwitterJNI(const std::string& funid)
{
JniHelper::callStaticVoidMethod(JCSDK, "signWithTwitter", funid);
}
void signOutGoogleJNI(const std::string& funid) void signOutGoogleJNI(const std::string& funid)
{ {
JniHelper::callStaticVoidMethod(JCSDK, "signOutGoogle", funid); JniHelper::callStaticVoidMethod(JCSDK, "signOutGoogle", funid);
} }
void callJcVoidMethodJNI(const std::string& funid, const std::string& method_name)
{
JniHelper::callStaticVoidMethod(JCSDK, method_name, funid);
}
void toWalletJNI(const std::string& url) void toWalletJNI(const std::string& url)
{ {
JniHelper::callStaticVoidMethod(JCSDK, "toWallet", url); JniHelper::callStaticVoidMethod(JCSDK, "toWallet", url);

View File

@ -41,9 +41,8 @@ void scanQRCodeJNI(const std::string& funid, const std::string& title);
void loadRestoreKeyJNI(const std::string& funid, const std::string& oid); void loadRestoreKeyJNI(const std::string& funid, const std::string& oid);
void signWithGoogleJNI(const std::string& funid); void signWithGoogleJNI(const std::string& funid);
void signWithTiktokJNI(const std::string& funid); void signWithTiktokJNI(const std::string& funid);
void signWithFacebookJNI(const std::string& funid);
void signWithTwitterJNI(const std::string& funid);
void signOutGoogleJNI(const std::string& funid); void signOutGoogleJNI(const std::string& funid);
void callJcVoidMethodJNI(const std::string& funid, const std::string& method_name);
void toWalletJNI(const std::string& url); void toWalletJNI(const std::string& url);
extern int getObbAssetFileDescriptorJNI(const std::string& path, long* startOffset, long* size); extern int getObbAssetFileDescriptorJNI(const std::string& path, long* startOffset, long* size);
extern void convertEncodingJNI(const std::string& src, int byteSize, const std::string& fromCharset, std::string& dst, const std::string& newCharset); extern void convertEncodingJNI(const std::string& src, int byteSize, const std::string& fromCharset, std::string& dst, const std::string& newCharset);

View File

@ -893,39 +893,24 @@ static bool JSB_signWithTiktok(se::State& s)
} }
SE_BIND_FUNC(JSB_signWithTiktok) SE_BIND_FUNC(JSB_signWithTiktok)
static bool JSB_signWithFacebook(se::State& s) static bool JSB_callJcVoidMethodJNI(se::State& s)
{ {
const auto& args = s.args(); const auto& args = s.args();
size_t argc = args.size(); size_t argc = args.size();
CC_UNUSED bool ok = true; CC_UNUSED bool ok = true;
if (argc > 0) { if (argc > 1) {
std::string funid; std::string funid;
ok = seval_to_std_string(args[0], &funid); ok = seval_to_std_string(args[0], &funid);
SE_PRECONDITION2(ok, false, "funid is invalid!"); SE_PRECONDITION2(ok, false, "funid is invalid!");
signWithFacebookJNI(funid); std::string method_name;
ok = seval_to_std_string(args[1], &method_name);
callJcVoidMethodJNI(funid, method_name);
return true; return true;
} }
SE_REPORT_ERROR("wrong number of arguments: %d, was expecting %d", (int)argc, 1); SE_REPORT_ERROR("wrong number of arguments: %d, was expecting %d", (int)argc, 2);
return false; return false;
} }
SE_BIND_FUNC(JSB_signWithFacebook) SE_BIND_FUNC(JSB_callJcVoidMethodJNI)
static bool JSB_signWithTwitter(se::State& s)
{
const auto& args = s.args();
size_t argc = args.size();
CC_UNUSED bool ok = true;
if (argc > 0) {
std::string funid;
ok = seval_to_std_string(args[0], &funid);
SE_PRECONDITION2(ok, false, "funid is invalid!");
signWithTwitterJNI(funid);
return true;
}
SE_REPORT_ERROR("wrong number of arguments: %d, was expecting %d", (int)argc, 1);
return false;
}
SE_BIND_FUNC(JSB_signWithTwitter)
static bool JSB_signOutGoogle(se::State& s) static bool JSB_signOutGoogle(se::State& s)
{ {
@ -1244,8 +1229,7 @@ bool jsb_register_global_variables(se::Object* global)
__jsbObj->defineFunction("restoreKey", _SE(JSB_restoreKey)); __jsbObj->defineFunction("restoreKey", _SE(JSB_restoreKey));
__jsbObj->defineFunction("signWithGoogle", _SE(JSB_signWithGoogle)); __jsbObj->defineFunction("signWithGoogle", _SE(JSB_signWithGoogle));
__jsbObj->defineFunction("signWithTikTok", _SE(JSB_signWithTiktok)); __jsbObj->defineFunction("signWithTikTok", _SE(JSB_signWithTiktok));
__jsbObj->defineFunction("signWithFacebook", _SE(JSB_signWithFacebook)); __jsbObj->defineFunction("callJcVoidMethodJNI", _SE(JSB_callJcVoidMethodJNI));
__jsbObj->defineFunction("signWithTwitter", _SE(JSB_signWithTwitter));
__jsbObj->defineFunction("signOutGoogle", _SE(JSB_signOutGoogle)); __jsbObj->defineFunction("signOutGoogle", _SE(JSB_signOutGoogle));
__jsbObj->defineFunction("showQRCode", _SE(JSB_showQRCode)); __jsbObj->defineFunction("showQRCode", _SE(JSB_showQRCode));