服务卡片
服务卡片类似于iOS中的小组件,提供了在手机桌面端显示和更新卡片的能力
ArkTS卡片架构
1.卡片使用方,目前只有系统桌面
●桌面上可以放置多个应用图标和卡片
●应用图标点击后启动应用进程,不支持交互
●卡片有不同的规格,可进行交互,如实现按钮进行卡片刷新、跳转到应用
2.卡片提供方,通常指我们的App
●App可以同时包含卡片功能和正常业务功能
●卡片功能中的FormExtensionAbility主要用于处理卡片的创建、销毁、刷新等生命周期回调
●卡片功能中的页面是需要我们自定义的UI
ArkTS卡片运行机制
实现原理
1.卡片使用方和提供方都依赖 卡片管理服务SDK
2.卡片管理服务:用于管理系统中所添加卡片的常驻代理服务,提供formProvider接口能力,同时提供卡片对象的管理与使用以及卡片周期性刷新等能力。
3.卡片渲染服务:用于管理卡片渲染实例,渲染实例与卡片使用方上的卡片组件一一绑定。卡片渲染服务运行卡片页面代码widgets.abc进行渲染,并将渲染后的数据发送至卡片使用方对应的卡片组件
1.卡片渲染服务用于运行卡片页面代码widgets.abc,卡片渲染服务由卡片管理服务管理。
2.卡片使用方的每个卡片组件都对应了卡片渲染服务里的一个渲染实例,同一应用提供方的渲染实例运行在同一个虚拟机运行环境中,不同应用提供方的渲染实例运行在不同的虚拟机运行环境中,通过虚拟机运行环境隔离不同应用提供方卡片之间的资源与状态。
3.开发过程中需要注意的是globalThis对象的使用,相同应用提供方的卡片globalThis对象是同一个,不同应用提供方的卡片globalThis对象是不同的
ArkTS卡片相关模块
1.FormExtensionAbility:卡片扩展模块,提供卡片创建、销毁、刷新等生命周期回调
2.页面布局(Card.ets):提供声明式范式的UI接口能力
3.卡片配置:包含FormExtensionAbility的配置和卡片的配置