HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符
HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符
需求是使用 createMd 计算摘要,使用了官方文档中的 demo 代码。
- import { cryptoFramework } from ‘@kit.CryptoArchitectureKit’;
- import { buffer } from ‘@kit.ArkTS’;
- function doMdBySync() {
- let mdAlgName = ‘SHA256’; // 摘要算法名
- let message = ‘mdTestMessgae’; // 待摘要的数据
- let md = cryptoFramework.createMd(mdAlgName);
- // 数据量较少时,可以只做一次update,将数据全部传入,接口未对入参长度做限制
- md.updateSync({ data: new Uint8Array(buffer.from(message, ‘utf-8’).buffer) });
- let mdResult = md.digestSync();
- console.info(’[Sync]:Md result:’ + mdResult.data);
- let mdLen = md.getMdLength();
- console.info("md len: " + mdLen);
- }
实际测试的时候发现 mdResult.data
并不是一个 Unit8Array
数据,而是一个 Unit8Array
构造函数。
这个 API 有问题吧,与文档描述的返回类型值不符啊。
更多关于HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在JS中没有类的概念,类是用函数原型来实现的,所以两者从JS来看是一样的。
更多关于HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这个 mdResult.data
在预览器模式下类型是一个 function
,预期是一个 Uint8Array
类型,反复测试发现这个只有在模拟器中才运行正常,真坑人。
预览器本就是个精简版调试工具,主要以UI快速预览为主,这些加密啊、数据库什么的还是用模拟器相对可靠些。
针对帖子标题“HarmonyOS 鸿蒙Next摘要创建的 Md.digest 返回的数据类型与文档不符”的问题,以下是我的回答:
在HarmonyOS鸿蒙系统中,当使用Next摘要创建功能时,Md.digest
方法返回的数据类型应当与官方文档描述一致。如果在实际使用中遇到返回数据类型与文档不符的情况,这可能是由于以下几个原因:
-
API版本差异:确保你使用的HarmonyOS SDK版本与官方文档描述的版本一致。不同版本的SDK中,API的行为或返回类型可能有所不同。
-
文档错误:有可能是官方文档存在错误或更新不及时。这种情况下,建议查阅最新的官方文档或相关更新说明。
-
代码实现问题:检查你的代码实现,确保在调用
Md.digest
方法时,传递的参数和上下文环境符合API的要求。 -
系统Bug:如果以上都确认无误,可能是HarmonyOS系统本身存在的Bug。此时,可以尝试更新系统到最新版本,看问题是否得到解决。
如果问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。他们将为你提供更专业的帮助和支持。