微信小游戏运行环境与适配
级别:首作必学。平台资料核实:2026-10-31。 微信小游戏提供游戏渲染、设备和平台 API。它与浏览器、普通小程序页面都有差异。
三个环境分别证明什么
| 环境 | 能帮助发现 | 不能替代 |
|---|---|---|
| Creator 浏览器预览 | 规则、场景、基础输入与表现 | 微信平台行为与设备性能 |
| 微信开发者工具 | 输出工程、平台接口、调试信息 | 所有机型的渲染与内存情况 |
| 微信真机 | 触摸、前后台、音频、纹理与性能 | 真实账号审核或完整机型覆盖 |
小游戏不是直接运行 DOM 页面。使用 Cocos 时,引擎负责大量 Canvas 与平台适配;游戏交互优先走引擎输入系统,避免同时注册底层 wx 触摸再重复处理。
设备与窗口信息
新代码按目的选择 getWindowInfo、getDeviceInfo、getAppBaseInfo 等接口。getSystemInfo 已停止维护,不宜继续作为所有信息的统一入口。具体接口兼容性通过官方表格和 wx.canIUse 等方式检查。
wx.getWindowInfo() 提供窗口尺寸、像素比和安全区信息;不能假定每台设备都返回 safeArea。方向差异也需要处理。没有字段时应有合理回退,并在实际布局上验证。
// 平台适配层片段;需要微信类型声明和支持此 API 的基础库。
const info = wx.getWindowInfo();
const safe = info.safeArea;
const top = safe ? safe.top : 0;
// 将窗口单位转换到当前引擎 UI 空间后,再应用到布局。
这个片段不完整表达横竖屏转换或胶囊区域避让。顶部操作还要根据实际平台菜单位置和设计方向检查,不能只减一个固定像素值。
平台能力隔离
把登录、广告、存储与窗口信息放在少量清楚的适配函数里。规则层不需要知道 wx。浏览器预览可以提供日志或本地实现;真机版本再接实际能力。不要假装一个浏览器模拟广告已经证明了真实广告奖励流程。
错误与兼容策略
对必要能力明确最低支持范围,对可选能力提供降级。平台调用失败时记录 API、错误码、版本与阶段,避免只写“网络异常”。界面需要给玩家下一步,例如重试、继续本地游玩或稍后恢复。
练习:记录一台目标设备的窗口、引擎 UI 尺寸和安全区;在长短屏检查 HUD 与棋盘。完成标准:能说明坐标来源和回退策略,并识别哪些结论必须真机确认。