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
待解决
相关问题
获取窗口内容规避的区域值全部都是0
876浏览 • 1回复 待解决
napi_get_arraybuffer_info 和 napi_create_arraybuffer 的使用
737浏览 • 1回复 待解决
Native如何通过napi获取ArrayBuffer?
2113浏览 • 1回复 待解决
ArrayBuffer是否一定要传固定长度参数
895浏览 • 1回复 待解决
arkts 有实现 ArrayBuffer gzip 压缩的 api 吗
44浏览 • 1回复 待解决
socket连接的时候报错 2301099,但是ip和域名都是可以通的
237浏览 • 1回复 待解决
sqlite 的字段长度有什么用?
1471浏览 • 1回复 待解决
浏览器查询是否有网络的接口,在浏览器里面返回true 但是在应用里面的webview返回False
318浏览 • 1回复 待解决
目前的下拉组件如 Select 和 Menu 都是限定的内容,无法自定义
558浏览 • 1回复 待解决
是否有简洁易用的NAPI开发框架
1526浏览 • 1回复 待解决
mysql orderBy order by sort=0 语法有懂的吗?
1251浏览 • 1回复 待解决
离线web多web实例跳转场景下跳转到最后页面,点击pop返回时页面白屏,组件树Nodecontainer大小为【0, 0】
799浏览 • 1回复 待解决
在 string 转成ArrayBuffer报错
413浏览 • 1回复 待解决
时间戳字符串 比如 1639025996224,声明为字符串类型,判断length > 0 返回false
594浏览 • 1回复 待解决
时间戳字符串 比如 1639025996224,声明为字符串类型,判断length > 0 返回false,为什么
541浏览 • 1回复 待解决
JS线程通过napi创建的C++线程的处理结果,如何返回JS线程
895浏览 • 1回复 待解决
如何将ArrayBuffer转成string
891浏览 • 1回复 待解决
color使用color: 'rgba(0, 0, 255, .5)'不生效
1061浏览 • 1回复 待解决
List默认自带回弹效果,但是当内容不足一屏时,回弹效果就消失了,如何设置即使内容不足一屏
28浏览 • 1回复 待解决
learTimeout(0) 会清理掉setInterval 中 timerId = 0 的任务
447浏览 • 1回复 待解决
Uint8Array如何转成ArrayBuffer
795浏览 • 1回复 待解决
关于text内容删除的问题有懂的吗?
1580浏览 • 1回复 待解决
有那种公共的标题返回的标题控件吗
779浏览 • 1回复 待解决
imageReceiver拿到的数据帧长度
764浏览 • 1回复 待解决
小熊派烧录报错 errno=0x3611 errno=0x3612如何解决?
4687浏览 • 2回复 待解决
将buffer传递到native,需要 使用 typedarray 做处理。