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

相关推荐
惜.己33 分钟前
使用python读取json数据,简单的处理成元组数组
开发语言·python·测试工具·json
周胡杰37 分钟前
鸿蒙加载预置数据库-关系型数据库-如何读取本地/预制数据库
数据库·华为·harmonyos·鸿蒙
脑子缺根弦2 小时前
融合优势:SIP 广播对讲联动华为会议 全场景沟通响应提速
华为·音视频·广播对讲系统
迷曳11 小时前
27、鸿蒙Harmony Next开发:ArkTS并发(Promise和async/await和多线程并发TaskPool和Worker的使用)
前端·华为·多线程·harmonyos
stoneSkySpace14 小时前
set、map 比数组,json 对象的性能更好原因分析
json
呆呆的小鳄鱼14 小时前
牛客:HJ24 合唱队[华为机考][最长递增子集][动态规划]
算法·华为·动态规划
迷曳15 小时前
24、鸿蒙Harmony Next开发:不依赖UI组件的全局自定义弹出框 (openCustomDialog)
dialog·前端·ui·harmonyos·鸿蒙
DC_BLOG17 小时前
OSPFv3中LSA参数
运维·服务器·华为·智能路由器·huawei
Rabbb1 天前
C# JSON 反序列化时,忽略转换失败的属性 JTokenSafeToExtensions
后端·c#·json
平谷一勺1 天前
鸿蒙状态栏操作
华为·harmonyos·沉浸式状态栏