diff --git a/flutter_embed_into_qt/embedded/src/main/cpp/src/EmbeddedBridge.cpp b/flutter_embed_into_qt/embedded/src/main/cpp/src/EmbeddedBridge.cpp index 84b2dd4dd8b70922a1531e642692ca5cf1e750c0..dc2a4e23b37a42733d92bdc8f4b2605241abf461 100644 --- a/flutter_embed_into_qt/embedded/src/main/cpp/src/EmbeddedBridge.cpp +++ b/flutter_embed_into_qt/embedded/src/main/cpp/src/EmbeddedBridge.cpp @@ -32,6 +32,9 @@ napi_ref EmbeddedBridge::g_ref_napi_obj = nullptr; napi_threadsafe_function EmbeddedBridge::g_cb_ref; const std::string EmbeddedBridgeTAG = "[EmbeddedBridge] "; +const int ARG_INDEX_HANDLER = 0; +const int ARG_INDEX_FUNCTION_NAME = 1; +const int ARG_INDEX_DATA = 2; napi_value EmbeddedBridge::dispatchMessage(napi_env env, napi_callback_info info) { @@ -39,26 +42,27 @@ napi_value EmbeddedBridge::dispatchMessage(napi_env env, napi_callback_info info napi_value args[3] = {nullptr}; NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, nullptr, nullptr)); std::string handler, funName, data; - GetString(env, args[0], handler); - GetString(env, args[1], funName); - GetString(env, args[2], data); - QMetaObject::invokeMethod(EmbeddedBridgeJsSide::instance(), "sigSendData", - Qt::QueuedConnection, Q_ARG(QString, QString::fromStdString(handler)), - Q_ARG(QString, QString::fromStdString(funName)), Q_ARG(QString, QString::fromStdString(data))); + GetString(env, args[ARG_INDEX_HANDLER], handler); + GetString(env, args[ARG_INDEX_FUNCTION_NAME], funName); + GetString(env, args[ARG_INDEX_DATA], data); + QMetaObject::invokeMethod(EmbeddedBridgeJsSide::instance(), "sigSendData", Qt::QueuedConnection, + Q_ARG(QString, QString::fromStdString(handler)), + Q_ARG(QString, QString::fromStdString(funName)), + Q_ARG(QString, QString::fromStdString(data))); return nullptr; } -//发起向JS调用时的回调 +// 发起向JS调用时的回调 static void CallBackFunction(napi_env env, napi_value jsCallback, void *context, void *data) { size_t argc = 3; napi_value argv[3]; napi_value out; - //data是napi_call_threadsafe_function传入的参数 - JsCbParam *param = static_cast(data); - napi_create_string_utf8(env, param->handler.c_str(), NAPI_AUTO_LENGTH, &argv[0]); - napi_create_string_utf8(env, param->fun.c_str(), NAPI_AUTO_LENGTH, &argv[1]); - napi_create_string_utf8(env, param->data.c_str(), NAPI_AUTO_LENGTH, &argv[2]); + // data是napi_call_threadsafe_function传入的参数 + JsCbParam *param = static_cast(data); + napi_create_string_utf8(env, param->handler.c_str(), NAPI_AUTO_LENGTH, &argv[ARG_INDEX_HANDLER]); + napi_create_string_utf8(env, param->fun.c_str(), NAPI_AUTO_LENGTH, &argv[ARG_INDEX_FUNCTION_NAME]); + napi_create_string_utf8(env, param->data.c_str(), NAPI_AUTO_LENGTH, &argv[ARG_INDEX_DATA]); napi_call_function(env, nullptr, jsCallback, argc, argv, &out); delete param; }