概览
FRVR SDK 是一个 JavaScript 包,处理 HTML5 游戏发布过程中所有非玩法相关的部分:广告、支付、数据分析、登录、存储、排行榜、推送、用户同意、深链 —— 然后根据你运行所在的渠道(发行平台)自动适配。
它是怎么组织的
Section titled “它是怎么组织的”- 核心包(
frvr-sdk.min.js)永远是同一个,是你游戏代码直接对话的对象。 - 渠道包(
frvr-channel-*.min.js)接入特定 provider 的具体行为 —— Facebook Instant 的广告、Google Play 计费、iOS 原生桥接等等。本地用frvr-channel-dev;FRVR 在发版时会按平台自动注入正确的渠道包。
一份游戏构建可以发到多个渠道。游戏代码不需要按平台分支,生产环境也轮不到你自己挑渠道包。
FRVR.config 里都有什么
Section titled “FRVR.config 里都有什么”整个 SDK 由一个配置对象驱动。每个模块只读自己那把 key,缺了也无所谓 —— 那个模块要么走默认值,要么静默不工作。
详见 配置参考。
启动顺序大概长这样
Section titled “启动顺序大概长这样”调用顺序大体如下:
- 设置
FRVR.config,所有生命周期回调都接好 ——onSuspend、onResume、onAudioSuspend、onAudioResume、onGamePause。漏一个都是上线 bug。 - 调用
FRVR.init()—— 装配所有模块。 - 调用
FRVR.bootstrapper.init()、加载游戏、再FRVR.bootstrapper.complete()—— 加载期间显示渠道风格的启动画面。
第 1 步是真正需要工作量的一步。纯 HTML5(没有引擎)需要把每个回调接到自己的主循环、音频混音器和 UI 上 —— 浏览器并没有一个通用的 “暂停一切” API。Unity 和 Cocos 插件就轻松些,因为引擎本身就有 pause/resume 和音频混音器,你转发过去即可。
完整流程见你引擎对应的生命周期页 —— Web、Unity、Cocos、Construct 3。