napi返回ArrayBuffer有长度但是内容都是0
调用 testEncodejiami 方法传入ArrayBuffer可以数据,打印时发现数据尾部后有乱码,之后napi_create_buffer返回数据(ArrayBuffer),接收到数据有长度内容全部为0。
index.d.ts:
export const testEncodejiami : (buf : ArrayBuffer) => ArrayBuffer;
hello.cpp:
static napi_value testEncodejiami(napi_env env, napi_callback_info info) {
OH_LOG_ERROR(LOG_APP, “NFC_TEST::%{public}s”, “123123”);
size_t requireArgc = 2;
size_t argc = 2;
napi_value args[1] = {nullptr};
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
napi_valuetype valuetype0;
napi_typeof(env, args[0], &valuetype0);
size_t length;
void *data;
napi_value buffer = args[0];
napi_status status;
status = napi_get_buffer_info(env, args[0], &data, &length);
if (status != napi_ok) {
OH_LOG_ERROR(LOG_APP, "NFC_TEST::%{public}s", "获取buff失败");
// 处理错误
return nullptr;
}
OH_LOG_ERROR(LOG_APP, "传入的数据长度 ::%{public}d", length);
OH_LOG_ERROR(LOG_APP, "传入的数据 ::%{public}s", data);
napi_value newBuffer;
status = napi_create_buffer(env, length,&data, &newBuffer);
if (status != napi_ok) {
OH_LOG_ERROR(LOG_APP, "NFC_TEST::%{public}s", " 处理错误");
// 处理错误
return nullptr;
}
OH_LOG_ERROR(LOG_APP, "返回的数据 ::%{public}s", newBuffer);
// 返回 Buffer 对象
return newBuffer;
}
ets:
let jsonStr = “{“mobilePhone”:”" + user + “”,“passwd”:"" + password + “”}"
let buf = buffer.alloc(jsonStr.length,jsonStr,“utf-8”)
let handelData : ArrayBuffer = textNapi.testEncodejiami(buf.buffer)
if (handelData !== null) {
let resultBuff = buffer.from(handelData,0,handelData.byteLength);
console.log("处理后的数据 : " + resultBuff.toString(‘hex’));
}else {
console.log("buff返回null : ")
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
napi_get_arraybuffer_info 和 napi_create_arraybuffer 的使用
2560浏览 • 1回复 待解决
获取窗口内容规避的区域值全部都是0
2181浏览 • 1回复 待解决
HarmonyOS Napi Arraybuffer无法创建
253浏览 • 1回复 待解决
Native如何通过napi获取ArrayBuffer?
4125浏览 • 1回复 待解决
HarmonyOS 获取的oaid都是0
1321浏览 • 1回复 待解决
NAPI创建arraybuffer内存释放问题咨询
353浏览 • 1回复 待解决
HarmonyOS 生成Authorization 中的时间戳都是最新的,但是请求返回token过期
404浏览 • 1回复 待解决
HarmonyOS napi_create_external_arraybuffer接口问题
381浏览 • 1回复 待解决
ArrayBuffer是否一定要传固定长度参数
2273浏览 • 1回复 待解决
HarmonyOS 网络上行下行获取的数值都是0
342浏览 • 1回复 待解决
HarmonyOS如何测量文本内容的长度?
457浏览 • 0回复 待解决
napi_create_external_arraybuffer的finalize_cb没有调用
398浏览 • 1回复 待解决
HarmonyOS NAPI层中,huks加解密并没有返回 加密后密文的长度和解密后明文的长度,示例代码中是定值
375浏览 • 1回复 待解决
HarmonyOS AVCapture录音得到数据Arraybuffer,传递到napi层,如何在Napi层正确的获取并使用?
445浏览 • 1回复 待解决
HarmonyOS getWindowAvoidArea bottomRect返回的height为0
226浏览 • 1回复 待解决
TextInput组件能根据输入内容改成动态长度吗?
647浏览 • 1回复 待解决
socket连接的时候报错 2301099,但是ip和域名都是可以通的
1013浏览 • 1回复 待解决
Row里面的子内容长度超过Row后,循环平移,内容既有图片也有文字,没法用Marquee组件来实现,有什么方案?
680浏览 • 1回复 待解决
HarmonyOS connect.getAllNets,文档说明是会返回当前所有可用网络。但是我这个wifi和移动网络同时打开,这个getAllNets始终返回的都是wifi网络
429浏览 • 1回复 待解决
HarmonyOS Web组件嵌套滚动 当web 内容超过屏幕长度,web底部的内容无法滑动联动
418浏览 • 1回复 待解决
arkts 有实现 ArrayBuffer gzip 压缩的 api 吗
871浏览 • 1回复 待解决
HarmonyOS 字符串变量是否有长度限制?
258浏览 • 1回复 待解决
HarmonyOS image.PropertyKey.ORIENTATION 返回的 Unknown value 0
331浏览 • 1回复 待解决
#鸿蒙学习大百科#如何阶段文件中的内容只剩下指定的长度的内容?
402浏览 • 1回复 待解决
sqlite 的字段长度有什么用?
2710浏览 • 1回复 待解决
将buffer传递到native,需要 使用 typedarray 做处理。