開發(fā)文檔和API變化
核心API
-
FormExtensionAbility:卡片生命周期管理,包括創(chuàng)建、更新、銷毀等回調
-
formBindingData:提供卡片數據綁定能力
-
formProvider:用于更新卡片內容和設置刷新時間
-
postCardAction:卡片內部與應用交互的關鍵接口
API版本變化
- FA模型從API 7開始不再主推,建議使用Stage模型
- ArkTS卡片支持動效和自定義繪制能力
- 新增FormLink組件用于靜態(tài)卡片交互
設計指南和最佳實踐
設計原則
-
突出服務內容:避免過多跳轉入口
-
輕量交互:簡化用戶操作,避免復雜手勢
-
多端適配:支持不同設備尺寸和形態(tài)
-
視覺一致性:統(tǒng)一色彩、字體和布局
尺寸規(guī)范
- 微尺寸(1×2):適用于簡單信息展示
- 小尺寸(2×2):必選尺寸,兼容性最佳
- 中尺寸(2×4):展示更多信息
- 大尺寸(4×4):復雜內容和交互
案例分析
天氣應用
- 實時天氣信息展示
- 動態(tài)更新溫度和天氣狀況
- 多尺寸卡片適配
音樂應用
- 播放控制和歌詞展示
- 歌單推薦功能
- 跨設備同步播放狀態(tài)
金融應用
- 行情展示和交易入口
- 安全防護措施
- 用戶畫像和風險評估
代碼示例
卡片生命周期實現(xiàn)
export default class EntryFormAbility extends FormExtensionAbility {
onAddForm(want: Want) {
return formBindingData.createFormBindingData({ title: '初始數據' });
}
onUpdateForm(formId: string) {
// 更新卡片數據
}
onRemoveForm(formId: string) {
// 清理資源
}
}
卡片UI實現(xiàn)
@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' })
})
}
}
最佳實踐總結
- 優(yōu)先使用Stage模型和ArkTS語言開發(fā)
- 遵循設計規(guī)范,確保多端適配
- 優(yōu)化卡片刷新機制,減少資源消耗
- 實現(xiàn)零層級交互,提升用戶體驗
- 結合分布式能力,實現(xiàn)跨設備協(xié)同