【每日学点鸿蒙知识】私仓搭建、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进行储存。

相关推荐
Georgewu21 分钟前
【HarmonyOS】鸿蒙应用开发Text控件常见错误
harmonyos
Georgewu2 小时前
【HarmonyOS】富文本编辑器RichEditor详解
harmonyos
zhanshuo8 小时前
鸿蒙应用调试与测试实战全指南:高效定位问题,性能优化必备技巧+实用代码示例
harmonyos
万少12 小时前
2025中了 聊一聊程序员为什么都要做自己的产品
前端·harmonyos
网络小白不怕黑13 小时前
华为设备 QoS 流分类与流标记深度解析及实验脚本
网络·华为
网络小白不怕黑14 小时前
华为交换机堆叠与集群技术深度解析附带脚本
网络·华为
葬歌倾城1 天前
JSON的缩进格式方式和紧凑格式方式
c#·json
幽蓝计划1 天前
HarmonyOS NEXT仓颉开发语言实战案例:动态广场
华为·harmonyos
万少1 天前
第五款 HarmonyOS 上架作品 奇趣故事匣 来了
前端·harmonyos·客户端
幽蓝计划1 天前
HarmonyOS NEXT仓颉开发语言实战案例:电影App
华为·harmonyos