跳转到内容

渠道参考

渠道就是你发行的所在平台 —— Facebook Instant、Google Play、iOS、开放 web、Samsung Instant Play 等等。每个渠道在广告、计费、登录等方面都有自己的后端,FRVR SDK 把这些差异藏在统一的 API 后面。

渠道发行目标备注
web开放 web、嵌入合作伙伴(门户站)多数游戏发 web/手机 web 用这个。也覆盖 frvr.com:游戏外层的页面负责加载界面、登录、分享按钮和音频开关。
youtubeYouTube Playables最严格的渠道。见 YouTube 要求。
facebook-instantFacebook Instant Games启用 Shield 浮层、Facebook 好友、原生内购。
facebook-roomsFacebook Rooms(视频通话)在 Instant 之上扩展了 room-context 特性。
google-playGoogle Play(TWA / 混合壳)Play Billing、Play Games、Play 成就。
iosiOS 原生 app(WebKit 桥)Apple IAP、通过 Apple 登录、FRVR 标题栏。
samsung-galaxySamsung Galaxy StoreSamsung Account、Galaxy IAP。
samsung-instant-playSamsung Instant Play(云)关心会话时长,无设备本地存储。
xiaomiXiaomi QuickGameXiaomi 账号、Mi Pay。
dev仅本地开发把所有 provider 做成假实现,让 demo 和测试无需真实环境也能跑。FRVR 绝不会把这个发到生产。

不是每个模块在每个渠道都能用。在显示功能 UI 之前,请用每行展示的运行时检查 —— FRVR 给某个平台注入的渠道包对不支持的功能直接返回 “否”,所以用这些检查包住 UI 能让代码具备跨平台可移植性。

模块支持检查WebFB InstantiOSGoogle PlaySamsung
广告FRVR.ads.isSupported(AdType.INTERSTITIAL) · FRVR.ads.isReady(type)✓✓✓✓✓
内购FRVR.iap.isReady() —— 也可以用 FRVR.iap.onReady(cb)✓✓✓✓✓
登录(FRVR)FRVR.auth.isPlatformAvailable('FRVR') · FRVR.auth.isLoggedIn()✓✓✓✓✓
社交(好友)FRVR.social.platform.getSupportedAPIs().length > 0✓✓✓✓—
排行榜FRVR.leaderboards.isSupported()✓✓✓✓✓
锦标赛FRVR.tournaments.platform.isSupported()✓✓———
挑战(await FRVR.challenges.getPossibleOpponents()).length > 0✓✓———
通知await FRVR.notifications.canScheduleMessages()—✓✓✓—
本地通知FRVR.notifications.supportsLocalNotifications()——✓✓✓
宿主登录界面(await FRVR.auth.getLoginCapabilities()).hostLoginUI✓—✓✓✓
宿主标题栏(await FRVR.hostUI.titlebar.getState()).supported——✓✓✓
宿主音频控件FRVR.channelCharacteristics.hasNativeAudioControlsfrvr.com————
快捷方式await FRVR.shortcut.canCreateShortcut()✓————
跨平台await FRVR.crossplay.canMoveToMobile()✓✓———
导航FRVR.navigation.canNavigate() · FRVR.navigation.canOpenChannelAppStore()✓✓✓✓✓
分数(原生)typeof FRVR.score !== 'undefined'——✓✓—
Shield 浮层(await FRVR.shield.createOverlay(…)) !== null—✓———
社区 CTAawait FRVR.community.canFollowOfficialPage() · await FRVR.community.canJoinOfficialGroup()—✓———

上面打勾仅作起点参考 —— 渠道能力会随平台更新而变。运行时的 isSupported / can… 检查永远是权威。

部分渠道接受 FRVR.config.channels 下的渠道专属字段:

FRVR.config.channels = {
  'facebook-instant': { /* … */ },
  'google-play':      { /* … */ },
};

只有当前激活渠道下的字段会被读取。同一份 FRVR.config 可以发到所有版本 —— FRVR 构建流水线会决定每次读哪个分支。