集成要求
游戏怎么和 SDK、和宿主渠道沟通。渠道专属差异见渠道页面。
- 必须在任何代码访问
window.FRVR之前加载frvr-sdk.min.js(以及 dev 阶段的frvr-channel-dev.min.js)。 - 必须在调用
FRVR.init()之前填好FRVR.config并接好所有生命周期回调。详见 start/overview。 - 必须调用
FRVR.bootstrapper.init()→ 加载资源 →FRVR.bootstrapper.complete()。
生命周期回调
Section titled “生命周期回调”五个全部必须实现:
| 回调 | 触发场景 |
|---|---|
onSuspend | 暂停游戏循环(插屏、应用退到后台) |
onResume | 恢复游戏循环 |
onAudioSuspend | 静音 / 暂停音频 |
onAudioResume | 恢复音频 |
onGamePause | 玩家显式暂停 |
各引擎接线:Web · Unity · Cocos · Construct 3。
暂停只走 SDK
Section titled “暂停只走 SDK”- 必须不用 Page Visibility API、
blur/focus、pagehide之类驱动暂停。 - 暂停意味着所有东西停下:游戏循环、音频、网络、动画、计时器、渲染。
onResume是唯一合法的恢复路径。
- 必须让所有音频走渠道能静音的回调(生命周期音频回调;Unity / Cocos 里就是接到引擎主混音器上)。
- 必须不在玩家产生交互前播放音频。
- 必须在有意义的检查点用
FRVR.cloudStorage持久化进度。云端是规范来源:跨设备、扛得住渠道级数据清除。 - 应该同时用
FRVR.localStorage处理高频或临时写入(关卡内检查点、UI 偏好、节流计数器)。云端写有速率限制;本地写很便宜。 - 模式:每次状态变化写本地;粗粒度检查点和
onSuspend时写云端。 - 必须不直接用 cookie、IndexedDB 或
window.localStorage。 - 必须先读云端再写云端。
- 应该让 payload 小一些。各渠道限制详见稳定性。
如果游戏向排行榜或渠道分数 API 提交”最高分”,这个值必须与玩家在游戏中看到的一致。