refactor(game): 重构游戏云端数据同步逻辑
1. 新增微信云函数双向同步接口,将时间戳对比逻辑移至云端完成 2. 简化初始化流程,合并云端登录与数据同步步骤 3. 重构GameDataSync类,统一同步流程并改为异步调用 4. 替换旧的getCloudData接口为新的syncFromCloud方法
This commit is contained in:
@@ -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
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user