鸿蒙服务卡片开发资料汇总
开发文档和API变化
核心API
- FormExtensionAbility:卡片生命周期管理,包括创建、更新、销毁等回调
- formBindingData:提供卡片数据绑定能力
- formProvider:用于更新卡片内容和设置刷新时间
- postCardAction:卡片内部与应用交互的关键接口
API版本变化
- FA模型从API 7开始不再主推,建议使用Stage模型
- ArkTS卡片支持动效和自定义绘制能力
- 新增FormLink组件用于静态卡片交互
设计指南和最佳实践
设计原则
- 突出服务内容:避免过多跳转入口
- 轻量交互:简化用户操作,避免复杂手势
- 多端适配:支持不同设备尺寸和形态
- 视觉一致性:统一色彩、字体和布局
尺寸规范
- 微尺寸(1×2):适用于简单信息展示
- 小尺寸(2×2):必选尺寸,兼容性最佳
- 中尺寸(2×4):展示更多信息
- 大尺寸(4×4):复杂内容和交互
案例分析
天气应用
- 实时天气信息展示
- 动态更新温度和天气状况
- 多尺寸卡片适配
音乐应用
金融应用
代码示例
卡片生命周期实现
export default class EntryFormAbility extends FormExtensionAbility {
onAddForm(want: Want) {
return formBindingData.createFormBindingData({ title: '初始数据' });
}
onUpdateForm(formId: string) {
}
onRemoveForm(formId: string) {
}
}
卡片UI实现
@Entry
@Component
struct WidgetCard {
@State message: string = 'Hello World'
build() {
Column() {
Text(this.message)
.fontSize(20)
}
.width('100%')
.height('100%')
.onClick(() => {
postCardAction(this, { action: 'router', abilityName: 'EntryAbility' })
})
}
}
最佳实践总结
- 优先使用Stage模型和ArkTS语言开发
- 遵循设计规范,确保多端适配
- 优化卡片刷新机制,减少资源消耗
- 实现零层级交互,提升用户体验
- 结合分布式能力,实现跨设备协同