| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 11 个月前 | ||
| 10 个月前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 11 个月前 |
卡片使用方主动刷新卡片内容(仅对系统应用开放)
介绍
本工程主要实现了对以下指南文档中 卡片使用方主动刷新卡片内容(仅对系统应用开放) 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。
相关概念
由于定时、定点刷新存在时间限制,卡片使用方可以通过调用requestForm接口向卡片管理服务请求主动触发卡片的刷新。 卡片管理服务触发卡片提供方FormExtensionAbility中的onUpdateForm生命周期回调,回调中可以使用updateForm接口刷新卡片内容。
效果预览
| 卡片未更新状态 | 卡片更新状态 |
|---|---|
![]() |
![]() |
使用说明
-
应用启动后会通过FormComponent组件自动添加卡片,并且获取formId
-
点击更新卡片按钮,会通过formHost提供的requestForm(仅支持系统应用使用)接口请求更新卡片,卡片管理服务会进而通知卡片提供方完成卡片更新。
工程目录
entry/src/main/ets/
|---entryability
| |---EntryAbility.ets // 主进程UIAbility
|---entryformability
| |---EntryFormAbility.ets // 卡片进程Ability
|---pages
| |---index.ets // 卡片使用方页面
|---widget
| |---pages
| | |---WidgetCard.ets // 卡片页
具体实现
-
卡片组件
- 使用卡片组件FormComponent (系统能力:SystemCapability.ArkUI.ArkUI.Full),展示卡片提供方提供的卡片内容。
- 源码参考:Index.ets
- 参考:FromComponent组件
-
formHost接口
- 使用formHost接口(系统能力:SystemCapability.Ability.Form),对使用方同一用户下安装的卡片进行删除、更新、获取卡片信息、状态等操作。
- 源码参考:Index.ets
- 接口参考:@ohos.app.form.formHost
依赖
卡片提供方 FormProvider
相关权限
| 权限名 | 权限说明 | 级别 |
|---|---|---|
| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | 允许应用查询其他应用的信息。 | system_basic |
| ohos.permission.LISTEN_BUNDLE_CHANGE | 允许应用监听其他应用安装、更新、卸载状态的变化。 | system_basic |
| ohos.permission.REQUIRE_FORM | 允许应用获取Ability Form。 | system_basic |
| ohos.permission.OBSERVE_FORM_RUNNING | 允许应用监听卡片运行状态 | system_basic |
约束与限制
- 本示例支持标准系统上运行,支持设备:RK3568;
- 本示例支持API20版本SDK,版本号:6.0.0.55;
- 本示例已支持使DevEco Studio 6.0.0 Release编译运行;
- 本示例需要使用系统权限的系统接口,需要使用Full SDK编译。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考替换指南;
- 本示例所配置的权限为system_basic或system_core级别(权限级别请参考权限定义列表),需要配置对应级别的权限签名(可查看自动化签名方案);
- 本示例类型为系统应用,需要手动配置对应级别的应用类型("app-feature": "hos_system_app")。具体可参考profile配置文件bundle-info对象内部结构;
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/DocsSample/Form/FormUpdateDemo/ > .git/info/sparse-checkout
git remote add origin https://gitcode.com/openharmony/applications_app_samples.git
git pull origin master

