用途
该技能用于让助手设计并实现一套稳健的同步系统,解决 Capacitor/Android 应用中的“无离线队列”(No Offline Queue)问题(P0)。其核心目标是支持本地优先(local-first)架构,使应用在离线状态下仍能正常工作,并在网络恢复后可靠地完成数据同步。
主要能力
本地存储(原生)
- Room 数据库:在 Android 端实现本地 SQLite 存储,用于缓冲位置更新。
- 数据实体:定义 OfflineLocation 的 schema,使其与 Supabase 的 registros_reten 结构相匹配。
同步策略
- 后台同步:使用 WorkManager,在连接恢复时可靠地上传数据。
- 冲突解决:针对位置数据采用基于时间戳的简单解决方式。
- 批量上传:通过单次 HTTP 请求向 Supabase 发送多条记录,以节省电量。
连接监控
- 网络状态:在 Web(React)与原生(Java)两侧对连接变化做出响应。
- 故障转移逻辑:在直连 Supabase 与本地优先模式之间优雅切换。
数据完整性
- 去重:确保同一位置点不会被发送两次。
- 队列管理:当设备长时间离线时截断旧日志,防止存储膨胀。
使用方式
该技能以知识领域与响应准则的形式提供给助手,用于指导同步系统的设计与实现。响应准则包括:
- 优先使用批量请求,以最大化电量效率。
- 在同步逻辑中始终包含针对网络失败的错误处理。
- 对于 Web 层任何复杂的本地存储需求,推荐使用 Capacitor SQLite。
- 确保遵守数据保留策略(删除已同步的记录)。
适用场景
适用于需要离线优先能力的 Capacitor/Android 应用,尤其是涉及位置数据缓冲与同步、需要在网络不稳定或离线环境下保证数据不丢失、并在恢复连接后批量上传的场景。
限制
资料未提供该技能的具体安装命令、代码示例、收费或价格信息、支持平台范围以及实际效果数据,这些内容暂未提供。