目录结构
MyApplication:整个项目的项目名
External Libraries:项目中要导入的第三方jar包
MyApplication的结构:
- gradle:是项目管理工具gradle的信息(一般是不会动)
- idea:是开发工具的信息(一般不会动)
- entry:是应用主模块,在一个项目中,有且只有一个,所有的代码都在这个里面。(重要)
- gradle:项目管理工具gradle的配置信息和所需要用到的jar包,在这个里面有一个porperties的配置文件,可以看到gradle的版本号,一般我们会用默认的,也不会动
- build.gradle:第三方jar包的配置文件,以后在开发中要用到第三方jar包需要在这个里面配置。
- gradlew:是gradle命令工具对应的脚本文件,一般不用。一个是linux系统的,一个是windows系统的。
- local.properties:本地SDK配置信息,一般也不动。
entry的结构:
- build:一般不会动,这个文件夹里面有一个R文件,记录每一个资源文件对应的id。里面的内容是自动生成的。
- libs:第三方jar包存放的位置
- src:主要代码
- src里面还有三个目录
- main:是我们自己写的主要代码。
- ohosTest:华为的测试工具。
main里面的结构目录:
- js:里面是我们写的所有代码。
- resources:里面是我们跟界面相关的资源文件。
- config.json:是界面相关所有配置信息,每一个界面都需要在这个里面进行配置。
生命周期
应用生命周期
在app.js中可以定义如下应用生命周期函数:
属性 | 类型 | 描述 | 触发时机 |
---|---|---|---|
onCreate | () => void | 应用创建 | 当应用创建时调用。 |
onShow6+ | () => void | 应用处于前台 | 当应用处于前台时触发。 |
onHide6+ | () => void | 应用处于后台 | 当应用处于后台时触发。 |
onDestroy | () => void | 应用销毁 | 当应用退出时触发。 |
页面生命周期
在页面JS文件中可以定义如下页面生命周期函数:
属性 | 类型 | 描述 | 触发时机 |
---|---|---|---|
onInit | () => void | 页面初始化 | 页面数据初始化完成时触发,只触发一次。 |
onReady | () => void | 页面创建完成 | 页面创建完成时触发,只触发一次。 |
onShow | () => void | 页面显示 | 页面显示时触发。 |
onHide | () => void | 页面消失 | 页面消失时触发。 |
onDestroy | () => void | 页面销毁 | 页面销毁时触发。 |
onBackPress | () => boolean | 返回按钮动作 | 当用户点击返回按钮时触发。
|
onActive()5+ | () => void | 页面激活 | 页面激活时触发。 |
onInactive()5+ | () => void | 页面暂停 | 页面暂停时触发。 |
onNewRequest()5+ | () => void | FA重新请求 | FA已经启动时收到新的请求后触发。 |
onStartContinuation()5+ | () => boolean | 详细描述见链接内容 | 分布式能力接口,详细解释见分布式迁移。 |
onSaveData(OBJECT)5+ | (value: Object) => void | 详细描述见链接内容 | 分布式能力接口,详细解释见分布式迁移。 |
onRestoreData(OBJECT)5+ | (value: Object) => void | 详细描述见链接内容 | 分布式能力接口,详细解释见分布式迁移。 |
onCompleteContinuation(code)5+ | (code: number) => void | 详细描述见链接内容 | 分布式能力接口,详细解释见分布式迁移。 |
onConfigurationUpdated(configuration)6+ | (configuration: Configuration) => void | 配置变更回调 | 当相应的系统配置发生变更时触发该回调,如系统字体大小,语言地区等。 说明 onConfigurationUpdated页面事件需要在config.json中配置相应的configChanges标签。详见config.json配置文件说明。 |
属性 | 类型 | 描述 |
---|---|---|
locale | Locale | 国际化相关信息,如语言,国家,文字布局方向等。 |
fontScale | number | 当前系统字体的放大倍数。 |
属性 | 类型 | 描述 |
---|---|---|
language | string | 语言,例如:zh。 |
countryOrRegion | string | 国家或地区。例如:CN。 |
dir | string | 文字布局方向。取值范围:
|
unicodeSetting | Object | 语言环境定义的Unicode语言环境键集,如果此语言环境没有特定键集,则返回空集。 例如:{"nu": "arab"},表示当前环境下的数字采用阿拉伯语的数字。 |
页面A的生命周期接口的调用顺序
- 打开页面A:onInit() -> onReady() -> onShow()
- 在页面A打开页面B:onHide()
- 从页面B返回页面A:onShow()
- 退出页面A:onBackPress() -> onHide() -> onDestroy()
- 页面隐藏到后台运行:onInactive() -> onHide()
- 页面从后台运行恢复到前台:onShow() -> onActive()
hml语法,CSS样式 ,JS语法
HML语法参考-语法-框架说明-基于JS扩展的类Web开发范式-方舟开发框架(ArkUI)-UI-开发-HarmonyOS应用开发
CSS语法参考-语法-框架说明-基于JS扩展的类Web开发范式-方舟开发框架(ArkUI)-UI-开发-HarmonyOS应用开发
JS语法参考-语法-框架说明-基于JS扩展的类Web开发范式-方舟开发框架(ArkUI)-UI-开发-HarmonyOS应用开发
组件
list组件
list-容器组件-组件-基于JS扩展的类Web开发范式-手机、平板、智慧屏和智能穿戴开发-JS API参考-HarmonyOS应用开发
list
列表包含一系列相同宽度的列表项。适合连续、多行呈现同类数据,例如图片和文本。
仅支持<list-item-group>和<list-item>。
list-item
<list>的子组件,用来展示列表具体item。由于父元素list组件的align-items默认样式为stretch,该组件宽度默认充满list组件。设置父元素list组件的align-items样式为非stretch来生效自定义宽度。
支持单个子组件。
list-item-group
<list>的子组件,用来展示分组,宽度默认充满list组件。
- 使用该组件时父元素list组件的样式columns必须为1,否则功能异常。
- 由于父元素list组件的align-items默认样式为stretch,该组件宽度默认充满list组件。设置父元素list组件的align-items样式为非stretch来生效自定义宽度。
- 仅支持<list-item>
swiper 组件
swiper-容器组件-组件-基于JS扩展的类Web开发范式-手机、平板、智慧屏和智能穿戴开发-JS API参考-HarmonyOS应用开发
滑动容器,提供切换子组件显示的能力。
支持除<list>之外的子组件。