refactor(game): 重构游戏云端数据同步逻辑

1. 新增微信云函数双向同步接口,将时间戳对比逻辑移至云端完成
2. 简化初始化流程,合并云端登录与数据同步步骤
3. 重构GameDataSync类,统一同步流程并改为异步调用
4. 替换旧的getCloudData接口为新的syncFromCloud方法
This commit is contained in:
pan
2026-08-07 10:04:55 +08:00
parent 076e03742d
commit ac2de96bd0
5 changed files with 135 additions and 78 deletions

View File

@@ -91,4 +91,32 @@ export class WxCloudApi{
}
});
}
/**
* @en Sync game data with the cloud (two-way, timestamp-based)
* @zh 与云端双向同步游戏数据:客户端较新则上传覆盖云端,云端较新则返回云端数据
* @param gameData 本地游戏数据(需包含 timestamp 字段)
* @return 返回结果
* result.result = {
* code: number, // 200成功其他都是失败
* msg?: string, // 失败原因
* updated: boolean, // true=云端已被本地数据覆盖false=客户端应使用返回的云端数据
* data: {
* openid: string,
* game_data: object, // 同步后的最终数据
* }
* }
*/
public static async sync(gameData: any): Promise<CloudCallFunctionResult<CloudReturnType<{
openid: string,
game_data: any
}> & { updated: boolean }>> {
return await wx?.cloud.callFunction({
name: 'cocos_cloud',
data: {
cmd: 'sync',
data: gameData
}
});
}
}