跳到主要内容

微信场景:离开、返回与恢复

在微信里玩游戏,离开和回来很常见。接消息、锁屏、打开其他界面之后,玩家会期待刚才的进展仍然可理解。你需要把生命周期当成体验的一部分。

先确定你用的运行环境​

普通微信小程序通常以页面和组件体系组织界面;微信小游戏面向游戏运行场景,常借助 Canvas 或游戏引擎。两者共享一些平台能力和命名,但不能把普通小程序页面跳转、浏览器 DOM 或插件能力默认视为小游戏都能直接使用。

本指南主要面向微信小游戏,UX 方法不绑定 Cocos 等具体引擎。实际能力以微信小游戏官方指引及具体 API 文档为准。

三种“回来”,不要混为一谈​

情况需要确认什么示例行为
热返回进程和当前局是否仍在恢复暂停状态,等待玩家操作
冷启动是否有有效检查点读取、校验并说明上次进度
从其他入口进入入口参数和当前进度有何关系按正式规则决定展示目标内容或继续选项

官方 wx.onHide 监听隐藏到后台,wx.onShow 监听回到前台。事件本身不等于“游戏自动暂停”或“存档一定成功”,这些行为需要你的实现。

有效进展、后台、热返回、冷启动和存档失败的处理关系查看原尺寸 ↗

检查点要覆盖足够的数据​

完整还原同一局通常不止关卡号:还可能需要棋盘、剩余步数、目标进度、随机数状态、正在进行的效果、资源确认记录和存档版本。

关键进展后保存检查点,后台时补充处理,比只在离开时临时发起一次异步写入更有恢复空间。后台回调不应被当成“必定有充足时间执行所有保存”的保证。

动手体验恢复与损坏​

交互实验正在准备…请启用 JavaScript。

有效消除后保存检查点,模拟冷启动后展示上次进度,选择继续恢复
实验只保存版本、关卡、步数和收集数,展示恢复规则;它没有保存完整棋盘,不能替代正式存档。

不把本地缓存当成永不丢失的数据​

wx.setStorage 是本地缓存接口,会覆盖相同 key 的原值;官方也说明用户清理或系统空间清理可能影响数据。因此长期进度和权威资源需要根据产品要求考虑服务端确认、冲突处理与恢复能力。

读写失败时不要显示已保存。存档损坏时先保护可用记录,验证版本、字段与取值;无法恢复时解释会丢失哪些临时进度。不要把两个互相矛盾的存档字段拼接成不可能的一局。

给 AI 的要求​

请按微信小游戏场景设计生命周期处理,区分热返回和冷启动。
列出完整检查点字段、保存触发时机、校验规则和失败反馈。
后台暂停输入、计时与相关音频;返回时不自动消耗玩家资源。
明确哪些是官方 API 能力,哪些是我们必须实现的游戏逻辑。

平台来源与验证边界​

核查日期:2026-11-01。来源:wx.onHide、wx.onShow、wx.setStorage。浏览器实验没有调用这些接口;正式项目需要在目标基础库、客户端、设备和入口组合下验证。

动手:在真实设备上分别锁屏、切聊天、结束进程再打开,记录恢复到了哪里,以及玩家能否理解这个结果。