【每日学点鸿蒙知识】私仓搭建、resources创建文件夹、hvigor如何动态设置版本、SM3摘要算法、SP存储报错等

【每日学点鸿蒙知识】私仓搭建、resources创建文件夹、hvigor如何动态设置版本、SM3摘要算法、SP存储报错等

1、OH私仓如何创建?

可以参照以下文档来搭建OH私仓:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-ohpm-repo-quickstart-V5

2、resources->base->media中不可以新建文件夹?

项目图片路径resources->base->media中不可以新建文件夹,图片全平级放里面,查找图片不方便,有没有什么其他的办法解决这个难点?

resources目录下可用于存放图片的目录有resources/*/media 以及 resources/rawfile

可以使用rawfile来创建文件夹放置图片。

rawfile支持创建多层子目录,目录名称可以自定义,文件夹内可以自由放置各类资源文件。

需要注意:

  1. rawfile不会根据设备所处的环境去匹配不同的资源
  2. rawfile 中源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件ID,通过指定文件路径和文件名引用
3、hvigor如何动态设置versionName和VersionCode?

参考我们之前的版本定义,VersionName分4段,前3段是人为配置到的,第4段是通过执行'git rev-list --count HEAD'得到的,而VersionCode也是通过VersionName所配置的前3段动态生成的。

在HarmonyOS原生,或者说在hvigor中如何实现这样的VersionName、VersionCode的动态生成?

请参考版本归一指令(versionNormalize),文档链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/packing-tool-V5#版本归一指令versionnormalize

4、HarmonyOS的SM3摘要算法结果转字符串乱码?
复制代码
// SM3Hash
export async function SM3Hash(plainText: string): Promise<string> {
  let mdAlgName = 'SM3'; // 摘要算法名
  let md = cryptoFramework.createMd(mdAlgName);
  // 数据量较少时,可以只做一次update,将数据全部传入,接口未对入参长度做限制
  await md.update({ data: new Uint8Array(buffer.from(plainText, 'utf-8').buffer) });
  let mdResult = await md.digest();
  console.info('Md result:' + mdResult.data);
  return uint8ArrayToString(mdResult.data);
}

使用的uint8ArrayToString方法为解密中解码的方法,在此应该用转base64或在十六进制数据base64格式字符串:new util.Base64Helper().encodeToStringSync(str)

十六进制字符串:buffer.from(data).toString('hex')

5、Preferences存储json格式字符串时报错?

Preferences存储json格式字符串时报错 ,

无论是转成

let uInt8Array = new util.TextEncoder().encodeInto(value);

this.preferences.putSync("asd" , uInt8Array)

还是直接

this.preferences.putSync("asd" ,value)

都会报错 Parameter error. The type of 'value' must be ValueType.

value值过长导致的,首选项value的最大长度限制为8192个字节。可考虑使用kv数据库或者rdb进行储存。

相关推荐
UnicornDev9 小时前
【HarmonyOS 6】空状态页面布局设计
华为·harmonyos·arkts·鸿蒙·鸿蒙系统
菜鸟程序员专写BUG14 小时前
SpringBoot 接口返回异常全集|JSON解析失败/响应乱码/状态码错误完美解决
spring boot·后端·json
互联网散修16 小时前
零基础鸿蒙应用开发第十九节:解锁灵活数据存储新技能Map/Set
harmonyos
张涛酱10745616 小时前
Jackson 严格解析:拒绝"温柔"的 JSON
spring boot·json
枫叶丹417 小时前
【HarmonyOS 6.0】ArkData 应用间配置共享:构建跨应用协作新范式
开发语言·华为·harmonyos
nilm6117 小时前
作为前端请使用vue2,elementUI框架 根据后端返回的json 生成表格.
前端·elementui·json
互联网散修17 小时前
零基础鸿蒙应用开发第十八节:内置泛型工具类型应用
harmonyos
轻口味18 小时前
HarmonyOS 6 自定义人脸识别模型8:MindSpore Lite框架介绍与使用
c++·华为·ai·harmonyos
枫叶丹418 小时前
【HarmonyOS 6.0】ArkData 分布式数据对象新特性:资产传输进度监听与接续传输能力深度解析
开发语言·分布式·华为·wpf·harmonyos
枫叶丹418 小时前
【HarmonyOS 6.0】Agent Framework Kit深度解析:构建应用与智能体的无缝连接
华为·aigc·harmonyos