OpenHarmony 踩坑2

发布时间 2023-10-17 11:02:19作者: 名字不好起啊

接下来要记录的是代码层面的细节问题:

1、读取文件,每个文本文件不能超过 128k,直接会报:Stack overflow

 

2、读取的 json 文件不能为空,代码会停掉,最起码要有 []

 

3、加载动态图片,需要先将图片读入内存转成 base64,再使用 Image 组件进行渲染

 

4、鼠标上浮图片放大,会对其他元素有所遮挡,禁掉:

 

5、组态元素是自定义位置,需要使用定位来渲染:

 

6、显示隐藏使用的是  visibility 属性:

 

7、Button 组件中,只能插 text 或者 image 二选一

 

8、json 中如果存在中文,即使是 UTF-8 编码(带BOM),读到内存中一样会乱码,所以提前转好(encode)

 使用时再转回来:

 

9、缓存使用时注意数据类型,存取都需要对应好(不然存不上取不出)

 

10、缓存的 key 有长度限制,如果超长需要注意(使用 UNId 20位就差不多了,我们当时为了省事用的 encode 后的中文,后来把 key 加密缩短了)

 

11、缓存实际上是记录到文件中,存在 IO 性能,如果定时器更新数据快些,可能短时间内性能吃的多,程序就会挂掉,后来我们直接用的内存变量记录的

 

12、数据变动要想界面同步更新,需要使用 @State 标记变量(对象也行)

 

13、超出父组件裁剪(像 overflow 一样):

 

14、层叠问题注意处理 zIndex 属性

 

15、目前动态图片加载没实现 svg 类型,只能放在项目里初始化使用

 

16、ArkUI 没有 tabel ,三方插件库也没有找到好用 的列表显示组件,可能需要自己造轮子:

ArkUi 文档:https://www.arkui.club/chapter4/4_1_text.html#_4-1-2-text%E5%B1%9E%E6%80%A7%E4%BB%8B%E7%BB%8D

三方插件库:https://gitee.com/explore/topic/OpenHarmony%E7%BB%84%E4%BB%B6

 

17、代码不是很健壮,需要 try catch 来包裹下: