ArkUI(eTS)开发问题汇总
条评论- 1. Q1.aboutToAppear和onAppear的区别?
- 2. eTS里面object类型有办法更新吗?
- 3. Q2.ets 的【TextArea】组件如何做到清空操作?
- 4. Q3.怎么获取鸿蒙系统的小时制
- 5. Q4.使用ArkUI开发的App能在安卓设备上安装吗?
- 6. Q5.如何实现遮罩效果
- 7. Q6.ets声明式ui开发,怎么获取当前系统时间
- 8.
Q1.aboutToAppear和onAppear的区别?
aboutToAppear:是被@Component修饰自定义组件的生命周期方法,函数在创建自定义组件的新实例后,在执行其build函数之前执行。
onAppear:是每个组件的属性方法,在该组件显示时触发此回调。
eTS里面object类型有办法更新吗?
1 | lis:Array<object> = [ |
然后用这种方式更新前端不会跟着更新,文档里面看到有@State装饰,但是不支持object类型,有其他方式解决吗?
“number”最好不要作为属性,因为“number”是字段类型。Object请改为class,示例代码如下:
1 | export class xxx { |
Q2.ets 的【TextArea】组件如何做到清空操作?
1 | text: string = 'test' |
Q3.怎么获取鸿蒙系统的小时制
可以使用DateFormatUtil.is24HourClock方法。
Q4.使用ArkUI开发的App能在安卓设备上安装吗?
不可以。HarmonyOS的应用只能运行在鸿蒙系统里。鸿蒙系统能运行HarmonyOS的应用和安卓应用。但是安卓系统只能运行安卓应用。
Q5.如何实现遮罩效果
使用onTouch实现按下抬起事件,.mask()实现遮罩的效果。代码如下:
1 |
|
Q6.ets声明式ui开发,怎么获取当前系统时间
在这里,我们将字符串用@state包裹,这样可以监听数据的更新
我们给Text绑定点击时间,然后点击,即可显示当前时间。代码如下:
1 | @Entry |
Q7.如何解决安装错误或者需要将 compileSdkVersion
和 compatibleSdkVersion
以及 SDK 版本需要与运行设备的 apiVersion
对应起来
运行的设备(模拟器和真机)和 SDK 版本的不匹配,因此会报 INSTALL_PARSE_FAILED_USESDK_ERROR
错误。
想解决这个问题,需要将 compileSdkVersion
和 compatibleSdkVersion
以及 SDK 版本需要与运行设备的 apiVersion
对应起来。
但是我们不能简单修改配置文件中 compileSdkVersion
和 c ompatibleSdkVersion
的版本号,因为使用不同的 HarmonyOS Sdk
版本,创建的 HarmonyOS 工程的目录结构和开发语言都不相同。
API Version 4~7
构建体系是由 Gradle 构建工具和构建插件组成,不要基于这个版本去开发,不然后期从 Gradle 迁移到 Hvigor 是件非常痛苦的事API Version 8~9
构建体系是由 Hvigor 构建工具和构建插件组成
开发语言也不一样:
API Version >= 9
仅仅支持 ArkTSAPI Version == 8
支持 ArkTS 和 JSAPI Version == 7
支持 ArkTS 、 JS 和 JavaAPI Version < 7
支持 JS 和 Java
所以我们不能简单的修改 compileSdkVersion
和 compatibleSdkVersion
的版本,对于我们初学者,如果出现这个问题,建议重新创建一个新的工程。
新建项目时 Compile Sdk
应该选择与你运行的设备(模拟器和真机) apiVersion
相对应的版本号。
Q8.如何安装 Android 应用到鸿蒙的模拟器
我们可以使用 adb 命令安装,也可以点击 Android Studio 上运行按钮 ,直接将 Android 应用安装到鸿蒙模拟器。
但是我们需要修改 Android 项目支持的 CPU/API
版本。因为 Harmony 的模拟器 CPU/API 是 x86
,所以需要在 build.gradle
文件中添加 x86
的支持。
1 | android { |
本文标题:ArkUI(eTS)开发问题汇总
文章作者:xmaihh
发布时间:2023-12-30
最后更新:2023-12-30
原始链接:https://xmaihh.github.io/blog/2023/12/30/arkui-ets-kai-fa-wen-ti-hui-zong/
版权声明:采用[CC BY-NC-SA 4.0许可协议]进行许可
分享