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

server/2024/12/26 23:38:43/

【每日学点鸿蒙知识】私仓搭建、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#%E7%89%88%E6%9C%AC%E5%BD%92%E4%B8%80%E6%8C%87%E4%BB%A4versionnormalize

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’)

json_44">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进行储存。


http://www.ppmy.cn/server/153454.html

相关文章

基于Spring Boot的网络购物商城的设计与实现

目录 摘 要&#xff1a;I Abstract&#xff1a;II 第1章 系统分析1 1.1 系统概述1 1.2 系统可行性分析1 1.2.1 技术可行性分析1 1.2.2 经济可行性分析1 1.2.3 社会可行性分析1 1.3 需求分析2 1.2.1 业务角色分析2 1.2.2 用例分析3 第2章 系统设计4 2.1 功能模块设…

C++ STL vector基本原理和用法

文章目录 基本原理1. 数据存储结构2. 内存管理机制3. 迭代器实现原理4. 元素访问原理5. 插入和删除元素原理 常见用法1. 概述2. 包含头文件3. 定义和初始化4. 常用成员函数5. 迭代器6. 内存管理与性能特点7. 应用场景 基本原理 以下是关于 std::vector 的基本原理讲解&#xf…

全国硕士研究生入学考试(考研)常识详解之复试考试科目:笔试、面试与加试

全国硕士研究生入学考试&#xff08;考研&#xff09;常识详解之复试考试科目&#xff1a;笔试、面试与加试 硕士研究生入学考试的复试是对考生进行全面评估的重要环节&#xff0c;旨在考察考生的专业知识、综合素质及科研潜力。复试主要包括笔试与面试两大核心部分&#xff0…

光谱相机的工作原理

光谱相机的工作原理主要基于不同物质对不同波长光的吸收、反射和透射特性存在差异&#xff0c;以下是其具体工作过程&#xff1a; 一、光的收集 目标物体在光源照射下&#xff0c;其表面会对光产生吸收、反射和透射等相互作用。光谱相机的光学系统&#xff08;如透镜、反射镜…

Linux下的MySQL:表的增删查改

目录 插入 1.全列插入 2.指定列插入 3.多行插入 4.插入否则更新 查询 1.全列查询 2.查询指定列 3.查询表达式 4.对查询的结果去重 5.where条件 结果排序 筛选分页结果 更新 ​删除 删除整表 截断表 插入 创建一张学生表 1.全列插入 、 2.指定列插入 3.多行插…

如何用pS制圣诞C4D效果海报

工具&#xff1a;STARTAI 网址&#xff1a;StartAI画图软件官网_PS插件StartAI绘画软件生成器_Photoshop图像处理插件 咒语&#xff1a;C4D style, isometric perspective, mid view, 2.5D, Open the gift box, inside there is a miniature Christmas scene bedroom, Christ…

STM32 高级 物联网通信之CAN通讯

目录 CAN通讯介绍 物理层 协议层 CAN的帧(报文)种类 1 数据帧(发送单元->接受单元) 2 远程帧(接受单元->发送单元) 3 错误帧(发送方发送数据错误会发送的状态帧) 4 过载帧(接收方放不下会发送到的状态帧) 5 帧间隔(状态) 数据帧介绍 远程帧介绍 C…

解决 fatal: detected dubious ownership in repository at ‘XXXX‘ 问题

重装系统后&#xff0c;重新下载git之后&#xff0c;出现了这个问题&#xff1a; fatal: detected dubious ownership in repository at V:/Web/Github_commit/Interview这个错误表明 Git 检测到仓库的所有者和当前用户不一致&#xff0c;这可能被视为一个安全风险。要解决这…