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
1647浏览 • 1回复 待解决
napi_get_arraybuffer_info 和 napi_create_arraybuffer 的使用
1167浏览 • 1回复 待解决
HarmonyOS 获取的oaid都是0
332浏览 • 1回复 待解决
Native如何通过napi获取ArrayBuffer?
3046浏览 • 1回复 待解决
ArrayBuffer是否一定要传固定长度参数
1610浏览 • 1回复 待解决
arkts 有实现 ArrayBuffer gzip 压缩的 api 吗
175浏览 • 1回复 待解决
socket连接的时候报错 2301099,但是ip和域名都是可以通的
377浏览 • 1回复 待解决
sqlite 的字段长度有什么用?
2250浏览 • 1回复 待解决
浏览器查询是否有网络的接口,在浏览器里面返回true 但是在应用里面的webview返回False
455浏览 • 1回复 待解决
目前的下拉组件如 Select 和 Menu 都是限定的内容,无法自定义
669浏览 • 1回复 待解决
HarmonyOS如何实现类似点9图效果,可以根据内容长度拉伸图片的指定区域
137浏览 • 1回复 待解决
是否有简洁易用的NAPI开发框架
2131浏览 • 1回复 待解决
mysql orderBy order by sort=0 语法有懂的吗?
2010浏览 • 1回复 待解决
在 string 转成ArrayBuffer报错
647浏览 • 1回复 待解决
离线web多web实例跳转场景下跳转到最后页面,点击pop返回时页面白屏,组件树Nodecontainer大小为【0, 0】
1594浏览 • 1回复 待解决
HarmonyOS request.uploadFile 上传文件成功,但是并无服务器数据返回
190浏览 • 1回复 待解决
HarmonyOS 在napi_init.cpp中调用C代码怎么接收返回的参数
128浏览 • 1回复 待解决
如何将ArrayBuffer转成string
2030浏览 • 1回复 待解决
HarmonyOS web组件onContextMenuShow长按链接的时候,没有返回链接对应的内容
85浏览 • 1回复 待解决
可以获取到接口对象,但是读不到具体内容是为什么啊
169浏览 • 0回复 待解决
color使用color: 'rgba(0, 0, 255, .5)'不生效
1836浏览 • 1回复 待解决
时间戳字符串 比如 1639025996224,声明为字符串类型,判断length > 0 返回false
733浏览 • 1回复 待解决
时间戳字符串 比如 1639025996224,声明为字符串类型,判断length > 0 返回false,为什么
665浏览 • 1回复 待解决
Uint8Array如何转成ArrayBuffer
1167浏览 • 1回复 待解决
将buffer传递到native,需要 使用 typedarray 做处理。