如何通过napi_get_array_length接口获取数组长度并在ArkTS侧进行展示?

阅读 604
1 个回答

在C++代码中,获取ArkTS侧传入的数组参数后,先检查是否为数组,若不是则抛出错误,若是则调用napi_get_array_length获取长度,将长度转换为napi_value类型后返回。示例代码如下:

#include "napi/native_api.h"

static napi_value GetArrayLength(napi_env env, napi_callback_info info) {
    size_t argc = 1;
    napi_value args[1] = {nullptr};
    napi_value result;
    uint32_t length;
    napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
    bool is_array;
    napi_is_array(env, args[0], &is_array);
    if (!is_array) {
        napi_throw_type_error(env, nullptr, "Argument must be an array");
        return nullptr;
    }
    napi_get_array_length(env, args[0], &length);
    napi_create_uint32(env, length, &result);
    return result;
}

ArkTS侧传入数组调用该接口,如const arr = [0, 1, 2, 3, 4, 5]; hilog.info(0x0000, 'testTag', 'Test Node-API get_array_length:%{public}d', testNapi.getArrayLength(arr));,通过日志输出获取到的数组长度。

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

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