HarmonyOS Native创建的buffer在ArkTS侧应该使用什么类型定义

1、如何在ArkTS侧定义native创建的buffer,https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-ndk-58-V5

要求使用ArrayBuffer类型,对于上层ArkTS传递到C++依旧使用ArrayBuffer会导致napi_get_buffer_info napi_is_buffer接口调用失败。

2、如果确实不支持buffer,那么native侧的NAPI相关的接口是否应该移除?

3、如果只是单纯的将buffer和arraybuffer认为是一致的,是否与N-API原始的定义不相符?

HarmonyOS
2025-01-09 13:44:46
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
superinsect

napi侧的buffer在ArkTS侧使用ArrayBuffer接收,ArkTs的ArrayBuffer在napi侧可以使用buffer/arrayBuffer接收。

ArkTSbuffer -> napi buffer示例:

// ArkTs侧
let a = buffer.from("test");
callback.Test(a);
  • 1.
  • 2.
  • 3.
// napi侧接收
void Test(napi_value value) {
  Buffer *bufferTest = new Buffer();
  napi_env env = aki::Binding::GetScopedEnv();
  napi_value offset;
  napi_get_named_property(env, value, "byteOffset", &offset);
  napi_value buffer;
  napi_get_named_property(env, value, "buffer", &buffer);
  napi_value length;
  napi_get_named_property(env, value, "length", &length);
  bool res;
  napi_is_arraybuffer(env, buffer, &res);
  AKI_LOG(INFO) << "napi_is_arraybuffer: " << res;
  bool res1;
  napi_is_buffer(env, buffer, &res1);
  AKI_LOG(INFO) << "napi_is_buffer: " << res1;
  // 获取Buffer的信息
  napi_status stutas = napi_get_buffer_info(env, buffer, &bufferTest->buffer, &bufferTest->size);
  napi_get_value_int32(env, offset, &bufferTest->offset);

  AKI_LOG(INFO) << "test " << bufferTest->buffer << " size:" << bufferTest->size;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
分享
微博
QQ
微信
回复
2025-01-09 17:04:25
相关问题
Native释放ArkTS对象方法
1326浏览 • 1回复 待解决
arktshashmap转为native
1709浏览 • 1回复 待解决
Native调用ArkTS全局普通方法
1880浏览 • 1回复 待解决
native创建file并保存进沙箱路径
1787浏览 • 1回复 待解决
HarmonyOS native C++ 层传递bufferArkTS
1093浏览 • 1回复 待解决
Native创建线程是否有限制
2951浏览 • 1回复 待解决
native如何跟ArkTS子线程通信
752浏览 • 1回复 待解决
Native调用ArkTS类函数
1795浏览 • 1回复 待解决
如何在Native释放ArkTS对象
3151浏览 • 1回复 待解决
ArkTSNative如何进行map数据交互
3063浏览 • 1回复 待解决
ArkTSNative分别如何动态加载SO库
3661浏览 • 1回复 待解决
HarmonyOS Map类型应该如何使用
513浏览 • 1回复 待解决