服务卡片(ServiceWidget)使用指导

← 返回组件参考 · 全部使用指导

服务卡片(ServiceWidget)使用指导

服务卡片组件 - 管理鸿蒙桌面服务卡片(Widget)。 鸿蒙独有组件,基于 FormExtension Ability API。

运行前提与搭建步骤

这些案例在包含该组件的鸿蒙 AI 伴侣或 HAP 中运行。Android 侧是供网页编辑器生成积木的声明,不能用安卓伴侣验证鸿蒙系统能力。

  1. 在设计器拖入 ServiceWidget,保留名称 ServiceWidget1;拖入案例涉及的按钮、文本输入框以及一个标签 标签1,按代码中的名称重命名。
  2. 根据下面的业务说明准备素材、JSON 或系统目标。案例中的按钮代表分步操作,先等初始化、加载或创建成功,再执行下一步。
  3. 接住完成事件与错误事件,将原始 JSON 或错误显示在标签。先确认原始结果,再编写业务处理。

先在打包工程中配置并安装真实服务卡片;拖入组件不会自动生成桌面卡片。编号来自已添加卡片,数据 JSON 的键必须匹配卡片页面的数据绑定。

案例一:登记并更新卡片

各案例独立使用;组合到同一屏幕时,将同名事件的处理合并到一个事件积木中。

when 按钮_登记.Click() {
  ServiceWidget1.RegisterFormId(文本输入框_卡片编号.Text)
  ServiceWidget1.UpdateWidget(文本输入框_卡片数据.Text)
}
when ServiceWidget1.WidgetUpdated(卡片ID) {
  标签1.Text = join("已更新:", 卡片ID)
}
when ServiceWidget1.Error(错误信息) {
  标签1.Text = 错误信息
}

案例二:查看与取消登记

when 按钮_查看.Click() {
  标签1.Text = ServiceWidget1.GetRegisteredFormIds()
}
when 按钮_取消登记.Click() {
  ServiceWidget1.UnregisterFormId(文本输入框_卡片编号.Text)
}

参数与返回值速查

JSON 参数是文本,不能直接传字典;需要字典时可用 Web 客户端的 JSON 解码积木转换返回文本。完整默认值与类型见组件参考。

方法或事件 参数与用途
获取全部卡片信息(GetAllWidgetInfo) 无参数。获取所有已注册服务卡片的信息,返回JSON格式。
获取已注册卡片ID(GetRegisteredFormIds) 无参数。获取所有已注册的服务卡片表单ID列表,返回JSON格式。
按模块获取卡片(模块名)(GetWidgetsByModule) 模块名:文本。根据模块名称获取对应的服务卡片信息,返回JSON格式。
注册卡片ID(卡片ID)(RegisterFormId) 卡片ID:文本。注册一个服务卡片的表单ID,用于后续更新。
设置刷新时间(时间)(SetRefreshTime) 时间:文本。设置服务卡片的定时刷新时间。
注销卡片ID(卡片ID)(UnregisterFormId) 卡片ID:文本。取消注册一个服务卡片的表单ID。
更新卡片(数据JSON)(UpdateWidget) 数据JSON:文本。更新服务卡片的数据内容,参数为JSON格式的数据。
更新全部卡片(卡片ID列表JSON,数据JSON)(UpdateWidgets) 卡片ID列表JSON:文本, 数据JSON:文本。批量更新多个服务卡片的数据。
出错时(错误信息)(Error) 错误信息:文本。发生错误时触发,返回错误信息。
卡片被点击时(卡片ID,消息)(WidgetClicked) 卡片ID:文本, 消息:文本。服务卡片被用户点击时触发。
卡片更新时(卡片ID)(WidgetUpdated) 卡片ID:文本。服务卡片数据更新完成时触发。

常见问题与验收

现象 检查与预期
安卓运行没有结果 切换到鸿蒙伴侣或 HAP;Android 的声明不会执行该鸿蒙系统能力。
方法已调用但界面没变化 生成 JSON 的方法只是构建数据;按业务流程交给渲染、启动或同步入口,不能将数据生成当成系统操作完成。
初始化、权限或设备失败 记录错误事件,确认系统服务、授权、目标应用或设备可用;只在成功事件后继续下一步。
JSON 解析失败 使用上一组件的原始输出,检查引号和字段类型;空对象用于默认模板演示,不能代替真实目标信息。
两个案例验收 每个按钮单独操作一次,核对对应返回或事件;输入错误目标或取消操作时查看失败事件,不应显示成功提示。
文档反馈