如何使用napi_get_value_uint32接口从ArkTS环境中获取32位无符号整数值?

阅读 586
1 个回答

在C++代码中,先获取传入的参数,然后调用napi_get_value_uint32接口获取参数中的32位无符号整数值,若传递的参数不是数字则返回napi_number_expected,此时函数返回nullptr,若获取成功则创建该无符号32位整数的napi_value并返回。示例代码如下:

#include "napi/native_api.h"

static napi_value GetValueUint32(napi_env env, napi_callback_info info) {
    size_t argc = 1;
    napi_value argv[1] = {nullptr};
    napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
    uint32_t number = 0;
    napi_status status = napi_get_value_uint32(env, argv[0], &number);
    if (status == napi_number_expected) {
        return nullptr;
    }
    napi_value result = nullptr;
    napi_create_uint32(env, number, &result);
    return result;
}

ArkTS侧传入不同类型的值调用该接口,如let value = testNapi.getValueUint32<number>(111111111111);(传入数字)、let data = testNapi.getValueUint32<string>("sssss");(传入非数字字符串),并通过日志输出获取到的值。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进