HarmonyOS 7 新特性(十八)|实况窗网络图片与 Push 状态一致性封面

从 API 26.0.0 开始,实况窗支持通过 Push Kit 下载网络图片。本文以订单进度为例,讨论服务端推送、图片约束和状态一致性。

本地更新实况窗依赖应用进程存活,后台被回收后容易失去连续状态。官方更推荐业务服务端通过 Push Kit 更新或结束实况窗;API 26 又增加网络图片下载,使订单、赛事和出行状态能带上更明确的视觉信息。

一、先建立服务端主状态

创建实况窗后,服务端保存 liveViewId、pushToken、场景 event 和业务状态版本。订单变化时由服务端生成新快照并推送,客户端页面只是同一业务状态的另一个消费者。

HarmonyOS 7 新特性(十八)|实况窗网络图片与 Push 状态一致性核心链路

二、网络图片有明确限制

官方文档要求网络图片不大于 512KB,支持 jpg、jpeg、png、bmp、webp,只接受 HTTPS 地址,并且仅特定模板位置可下载。服务端在推送前完成格式、大小和 URL 校验,不能把失败留给终端猜测。

三、状态更新必须单调

interface LiveViewSnapshot {
  businessId: string
  version: number
  state: 'CREATED' | 'PROCESSING' | 'DONE' | 'CANCELLED'
  imageUrl?: string
  updatedAt: number
}

终端拒绝低版本快照,结束态不再被处理中状态覆盖。Push 重试时使用相同业务版本,避免重复创建实况窗。

四、图片失败不能阻断状态

网络图片只是增强信息,订单状态与文字必须独立可读。图片超时、403、格式错误或缓存失效时,继续展示默认图与文本;不要因为封面下载失败导致整个实况窗无法更新。

五、URL 与隐私要谨慎

图片地址不要包含长期令牌、身份证号或订单明文。使用短期授权或匿名资源,并控制缓存策略。Push Token 和实况窗 ID 仅在必要服务中保存,日志做脱敏和访问审计。

六、结束操作要幂等

取消订单、完成配送和超时关闭都可能同时到达。服务端使用业务终态决策,只允许一次有效结束;迟到推送不重新激活已结束实况窗。清理 Token 与映射关系时保留必要审计记录。

七、模板选择服从信息优先级

进度可视化模板适合配送与上传,赛事比分模板适合双边状态,强调文本模板适合单一关键结果。网络图片只放在官方允许的位置,并准备同尺寸默认图。模板一旦确定,服务端字段与客户端创建参数要共同版本化,避免推送字段和终端模板错位。

八、验收清单

  • 应用被回收后服务端仍能更新;
  • 图片格式、大小、HTTPS 和模板位置全部校验;
  • 重复、乱序和迟到推送不会倒退状态;
  • 图片失败时文字状态仍完整;
  • Token 轮换、过期和用户退出能清理;
  • 创建、更新、结束各阶段都有可追踪证据。

HarmonyOS 7 新特性(十八)|实况窗网络图片与 Push 状态一致性验收清单

结语

网络图片让实况窗更直观,但可靠性仍来自服务端状态机。把图片视为可失败的增强资源,用版本化快照、幂等结束和隐私化 URL 管理,才能在应用不存活时持续提供准确信息。

官方参考

  • 通过 Push Kit 更新实况窗:https://developer.huawei.com/consumer/cn/doc/HarmonyOS-Guides/liveview-update-by-push
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐