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 的使用
1815浏览 • 1回复 待解决
获取窗口内容规避的区域值全部都是0
1814浏览 • 1回复 待解决
HarmonyOS 获取的oaid都是0
751浏览 • 1回复 待解决
Native如何通过napi获取ArrayBuffer?
3459浏览 • 1回复 待解决
ArrayBuffer是否一定要传固定长度参数
1838浏览 • 1回复 待解决
HarmonyOS如何测量文本内容的长度?
14浏览 • 0回复 待解决
HarmonyOS image.PropertyKey.ORIENTATION 返回的 Unknown value 0
75浏览 • 1回复 待解决
TextInput组件能根据输入内容改成动态长度吗?
210浏览 • 1回复 待解决
socket连接的时候报错 2301099,但是ip和域名都是可以通的
536浏览 • 1回复 待解决
Row里面的子内容长度超过Row后,循环平移,内容既有图片也有文字,没法用Marquee组件来实现,有什么方案?
150浏览 • 1回复 待解决
arkts 有实现 ArrayBuffer gzip 压缩的 api 吗
429浏览 • 1回复 待解决
#鸿蒙学习大百科#如何阶段文件中的内容只剩下指定的长度的内容?
135浏览 • 1回复 待解决
HarmonyOS 推送消息发送成功,回执状态码是0,但是手机端未收到
106浏览 • 1回复 待解决
sqlite 的字段长度有什么用?
2383浏览 • 1回复 待解决
浏览器查询是否有网络的接口,在浏览器里面返回true 但是在应用里面的webview返回False
666浏览 • 1回复 待解决
是否有简洁易用的NAPI开发框架
2296浏览 • 1回复 待解决
Napi中的方法如何返回一个数组类型?
166浏览 • 1回复 待解决
目前的下拉组件如 Select 和 Menu 都是限定的内容,无法自定义
829浏览 • 1回复 待解决
getAcceptType返回类型有问题
94浏览 • 1回复 待解决
现在很多API返回的UI相关变量都是使用Length来作为类型返回的,开发中此处返回都可以被转成实际数字吗?
126浏览 • 1回复 待解决
mysql orderBy order by sort=0 语法有懂的吗?
2238浏览 • 1回复 待解决
HarmonyOS如何实现类似点9图效果,可以根据内容长度拉伸图片的指定区域
319浏览 • 1回复 待解决
如何实现获取指定长度的安全随机数? 比如获取0-9之间的任意值?
98浏览 • 1回复 待解决
在 string 转成ArrayBuffer报错
895浏览 • 1回复 待解决
将buffer传递到native,需要 使用 typedarray 做处理。