HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第38天,ArkTS卡片相关模块。
HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第38天,ArkTS卡片相关模块。
1、ArkTS卡片运行机制
实现原理
ArkTS卡片实现原理
- 卡片使用方:显示卡片内容的宿主应用,控制卡片在宿主中展示的位置,当前仅系统应用可以作为卡片使用方。
- 卡片提供方:提供卡片显示内容的应用,控制卡片的显示内容、控件布局以及控件点击事件。
- 卡片管理服务:用于管理系统中所添加卡片的常驻代理服务,提供
formProvider
接口能力,同时提供卡片对象的管理与使用以及卡片周期性刷新等能力。 - 卡片渲染服务:用于管理卡片渲染实例,渲染实例与卡片使用方上的卡片组件一一绑定。卡片渲染服务运行卡片页面代码widgets.abc进行渲染,并将渲染后的数据发送至卡片使用方对应的卡片组件。
ArkTS卡片渲染服务运行原理
与JS卡片相比,ArkTS卡片支持在卡片中运行逻辑代码,为确保ArkTS卡片发生问题后不影响卡片使用方应用的使用,ArkTS卡片新增了卡片渲染服务用于运行卡片页面代码widgets.abc,卡片渲染服务由卡片管理服务管理。卡片使用方的每个卡片组件都对应了卡片渲染服务里的一个渲染实例,同一应用提供方的渲染实例运行在同一个虚拟机运行环境中,不同应用提供方的渲染实例运行在不同的虚拟机运行环境中,通过虚拟机运行环境隔离不同应用提供方卡片之间的资源与状态。开发过程中需要注意的是globalThis对象的使用,相同应用提供方的卡片globalThis对象是同一个,不同应用提供方的卡片globalThis对象是不同的。
2、ArkTS卡片的优势
卡片作为应用的一个快捷入口,ArkTS卡片相较于JS卡片具备如下几点优势:
- 统一开发范式,提升开发体验和开发效率。
- OpenHarmony在2022年发布了声明式范式的UI开发框架,而卡片还延续了css/hml/json三段式类Web范式的开发方式,提高了开发者的学习成本,提供ArkTS卡片能力后,统一了卡片和页面的开发范式,页面的布局可以直接复用到卡片布局中,提升开发体验和开发效率。
- 卡片工程结构对比
- 增强了卡片的能力,使卡片更加万能。
- 新增了动效的能力:ArkTS卡片开放了
属性动画
和显式动画
的能力,使卡片的交互更加友好。 - 新增了自定义绘制的能力:ArkTS卡片开放了Canvas画布组件,卡片可以使用自定义绘制的能力构建更多样的显示和交互效果。
- 允许卡片中运行逻辑代码:开放逻辑代码运行后很多业务逻辑可以在卡片内部自闭环,拓宽了卡片的业务适用场景。
- 新增了动效的能力:ArkTS卡片开放了
3、ArkTS卡片的约束
ArkTS卡片相较于JS卡片具备了更加丰富的能力,但也增加了使用卡片进行恶意行为的风险。由于ArkTS卡片显示在使用方应用中,使用方应用一般为桌面应用,为确保桌面的使用体验以及功耗相关考虑,对ArkTS卡片的能力做了以下约束:
- 不支持加载so。
- 不支持使用native语言开发。
- 仅支持声明式范式的
部分
组件、事件、动效、数据管理、状态管理和API能力。 - 卡片的事件处理和使用方的事件处理是独立的,建议在使用方支持左右滑动的场景下卡片内容不要使用左右滑动功能的组件,以防手势冲突影响交互体验。
除此之外,当前ArkTS卡片还存在如下约束:
- 暂不支持导入模块。
- 暂不支持极速预览。
- 暂不支持断点调试能力。
- 暂不支持Hot Reload热重载。
4、ArkTS卡片相关模块
ArkTS卡片相关模块
FormExtensionAbility
:卡片扩展模块,提供卡片创建、销毁、刷新等生命周期回调。- FormExtensionContext:FormExtensionAbility的上下文环境,提供FormExtensionAbility具有的接口和能力。
formProvider
:提供卡片提供方相关的接口能力,可通过该模块提供接口实现更新卡片、设置卡片更新时间、获取卡片信息、请求发布卡片等。formInfo
:提供了卡片信息和状态等相关类型和枚举。formBindingData
:提供卡片数据绑定的能力,包括FormBindingData对象的创建、相关信息的描述。- 页面布局(Card.ets):提供声明式范式的UI接口能力。
- ArkTS卡片特有能力:postCardAction用于卡片内部和提供方应用间的交互,仅在卡片中可以调用。
- ArkTS卡片能力列表:列举了能在ArkTS卡片中使用的API、组件、事件、属性和生命周期调度。
- 卡片配置:包含FormExtensionAbility的配置和卡片的配置
- 在module.json5配置文件中的extensionAbilities标签下,配置FormExtensionAbility相关信息。
- 在resources/base/profile/目录下的form_config.json配置文件中,配置卡片(WidgetCard.ets)相关信息。
更多关于HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第38天,ArkTS卡片相关模块。的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,ArkTS语言用于开发应用和卡片。卡片是鸿蒙系统中的一种轻量级UI组件,可以在桌面上展示动态信息。
-
卡片生命周期管理:ArkTS提供了卡片生命周期的回调方法,如
onCreate
、onDestroy
、onShow
、onHide
等,开发者可以在这些回调中处理卡片的初始化和资源释放。 -
卡片布局与样式:ArkTS支持使用XML或代码定义卡片的布局和样式。开发者可以通过
@Component
装饰器定义卡片组件,并使用@State
、@Prop
等装饰器管理卡片的状态和属性。 -
卡片数据绑定:ArkTS支持数据绑定,开发者可以通过
@Observed
和@ObjectLink
装饰器实现卡片与数据源的绑定,确保卡片内容随数据变化自动更新。 -
卡片事件处理:ArkTS提供了事件处理机制,开发者可以通过
@Watch
装饰器监听卡片状态的变化,并通过@Emit
装饰器触发自定义事件。 -
卡片与服务的交互:ArkTS支持卡片与后台服务的交互,开发者可以通过
@Service
装饰器定义服务,并在卡片中调用服务方法获取数据或执行操作。 -
卡片的多设备适配:ArkTS提供了多设备适配的能力,开发者可以通过
@DeviceType
装饰器定义不同设备上的卡片布局和样式,确保卡片在不同设备上显示一致。
ArkTS卡片相关模块的设计旨在简化卡片的开发流程,提升卡片的性能和用户体验。开发者可以通过这些模块快速构建功能丰富、响应迅速的卡片应用。
更多关于HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第38天,ArkTS卡片相关模块。的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next的ArkTS语言教程第38天,您将学习ArkTS卡片相关模块。ArkTS卡片是鸿蒙系统中用于展示信息的UI组件,支持动态更新和交互。您将掌握如何创建、配置和管理ArkTS卡片,包括卡片的布局、样式、数据绑定和事件处理。通过本模块,您将能够开发出功能丰富、响应迅速的卡片应用,提升用户体验。