HarmonyOS鸿蒙Next服务卡片开发-HML语法学习

HarmonyOS鸿蒙Next服务卡片开发-HML语法学习 HML(HarmonyOS Markup Language)是一套类HTML的标记语言,通过组件,事件构建出页面的内容。页面具备数据绑定、事件绑定、条件渲染和逻辑控制等高级能力。

HML语法参考

页面结构

页面结构:

  • key值支持对象操作符和数组操作符,如{{key.value}}{{key[0]}}
  • 从 API Version 6 开始支持字符串拼接、逻辑运算和三元表达式。

##### 数据绑定


数据绑定:

- 字符串拼接:
  - 支持变量跟变量:`{{key1}}{{key2}}`
  - 支持常量跟变量: `"my name is {{name}}, i am from {{city}}." "key1 {{key1}}"`
- 逻辑运算:
  - 与:`{{flag1 && flag2}}`(仅支持两个boolean变量间的与)
  - 或:`{{flag1 || flag2}}` (仅支持两个boolean变量间的或)
  - 非:`{{!flag1}}` (仅支持boolean变量的非运行)
- 三元表达式:
  - `{{flag ? key1 : key2}}`(flag为boolean变量,key1和key2可以是变量,也可以是常量)
  - 注意事项
    - 非boolean类型值进行bool运算默认为false
    - 以上所有变量解析跟运算解析均不支持嵌套

事件绑定

事件绑定:

  • 卡片仅支持click通用事件,事件的定义只能是直接命令式,事件定义必须包含action字段,用以说明事件类型。卡片支持两种事件类型:跳转事件(router)和消息事件(message)。跳转事件可以跳转到卡片提供方的侧应用;消息事件可以将开发者自定义信息传递给卡片提供方。事件参数支持变量,变量以{{}}修饰。跳转事件中若定义了params字段,则在被拉起应用的onStartintent中,可用params作为key将跳转事件定义的params字段的值取到。

##### 跳转事件格式


跳转事件格式:

| 选择器 | 样例 | 默认值 | 样例描述 |
|--------|------|-------|----------|
| action | string | router | 表示事件类型。 |
| abilityName | string | - | 跳转ability名。 |
| params | Object | - | 跳转应用携带的额外参数。 |

例:
```json
{
  "action": "router",
  "abilityName": "com.example.app",
  "params": {
    "key1": "value1",
    "key2": "value2"
  }
}

##### 消息事件格式


消息事件格式:

| 选择器 | 样例 | 默认值 | 样例描述 |
|--------|------|-------|----------|
| action | string | message | 表示事件类型。 |
| params | Object | - | 跳转应用携带的额外参数。 |

例:
```json
{
  "action": "message",
  "params": {
    "key1": "value1",
    "key2": "value2"
  }
}

##### 绑定路由事件和消息事件



更多关于HarmonyOS鸿蒙Next服务卡片开发-HML语法学习的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

支持,不错的文章,有收获

更多关于HarmonyOS鸿蒙Next服务卡片开发-HML语法学习的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


打卡学习贴,支持支持支持!!

学无止境,楼主的干货是发不完的么

在HarmonyOS鸿蒙Next中,服务卡片开发主要使用HML(HarmonyOS Markup Language)语法。HML是一种轻量级的标记语言,用于定义卡片的布局和结构。学习HML语法时,需掌握以下关键点:

  1. 基本结构:HML文件通常包含<div><text>等标签,用于定义卡片的各个元素。
  2. 样式绑定:通过classstyle属性绑定CSS样式,实现卡片的美化。
  3. 数据绑定:使用{{}}语法实现动态数据绑定,使卡片内容可根据数据变化自动更新。
  4. 事件处理:通过onclick等事件属性,实现用户交互功能。

掌握这些基础后,可进一步学习高级特性,如自定义组件和动画效果,以提升卡片的功能和用户体验。

回到顶部