鸿蒙NDK 开发之 常用的API解释-- napi_get_cb_info是什么意思
·
在进行NDK 开发的时候,经常会用到napi_get_cb_info 这个方法这个方法到底是什么意思,官方文档没有具体的解释,或者解释对小白来说很不友好,没有C基础的经验的完全看不明白。在这我通过我的理解给大家解释下:
一、napi_get_cb_info
用途:将ArkTS 中传入的参数、this 指针等信息进行获取到(例如在处理 JavaScript 调用 C++ 函数时使用)。
他的方法原型为:
napi_status napi_get_cb_info(
napi_env env,
napi_callback_info cbinfo,
size_t argc,
napi_value* argv,
napi_value* this_arg,
void** data
);
|
| 参数名 | 类型 | 作用 |
|---|---|---|
| env | napi_env | N-API 环境变量(上下文),用于关联当前 Node.js 实例的状态。 |
| – | – | – |
| cbinfo | napi_callback_info | 输入参数,回调信息对象(由 N-API 传入回调函数,包含参数数据)。 |
| – | – | – |
| argc | size_t | 输入参数,回调信息对象(由 N-API 传入回调函数,包含参数数据)。 |
| – | – | – |
| argv | napi_value | 输出参数,指针数组,用于存储提取到的参数(每个元素是 napi_value 类型,对应 JavaScript 传入的参数)。若实际参数数量少于 argc,多余位置会被设为 nullptr。 |
| – | – | – |
| this_arg | napi_value* | 输出参数,指针,用于存储回调中的 this 指针(对应 JavaScript 中的 this 对象)。可设为 nullptr 表示不需要提取。 |
| data | void** | 输出参数,指针,用于提取回调函数关联的用户数据(需提前通过 napi_create_function 绑定,可设为 nullptr 表示不需要提取) |
比如:
size_t argc = 2; // Number of parameters.
napi_value args[2] = {nullptr}; // A napi array that stores parameters.
// Obtain the parameters and store them in the NAPI parameter array.
if (napi_ok != napi_get_cb_info(env, info, &argc, args, nullptr, nullptr)) {
OH_LOG_Print(LOG_APP, LOG_ERROR, 0xFF00, "NumberType", "api_get_cb_info failed");
return nullptr;
}
就是代表从传入的参数里面取出2个参数,赋值给args[2] 这个对象
更多推荐



所有评论(0)