Skip to content

Channel characteristics

Channels differ in what they let a game do, and in how much UI they draw themselves. FRVR.channelCharacteristics is a plain object of flags describing the current one. Read it after FRVR.init() and before building any UI that depends on it.

if (FRVR.channelCharacteristics.allowExternalLinks) {
  showPrivacyPolicyLink();
}
FlagDefaultWhen it’s true
allowExternalLinkstrueThe game may open links to other sites.
allowInternalLinkstrueThe game may open links within the host.
allowNavigationtrueThe game may change location to move to another path.
allowSendBeacontruenavigator.sendBeacon may be used.
allowThirdPartyDomainstrueRequests to third‑party domains are allowed.
hasDedicatedLoadingScreentrueThe channel shows its own loading screen.
allowSharingtrueThe game may show share buttons. false means sharing is unsupported or the host’s own UI handles it.
hasNativeAudioControlsfalseThe host draws the sound and music toggles and drives the game’s audio. See Audio state.
usesPlatformLifecyclefalsePause and resume come only from the platform’s SDK. See below.

allowSharing and hasNativeAudioControls can be missing on older channel bundles. Treat a missing allowSharing as true and a missing hasNativeAudioControls as false:

const chars = FRVR.channelCharacteristics;
if (chars.allowSharing !== false) showShareButton();
if (chars.hasNativeAudioControls) hideAudioToggles();

On the frvr.com game page, the page around the game draws the share button, the legal links, and the sound and music toggles. The channel reports allowSharing: false, allowExternalLinks: false, and hasNativeAudioControls: true, and it is best for the game to hide its own versions.

When usesPlatformLifecycle is true, the SDK doesn’t attach focus, blur, or Page Visibility listeners. Every pause and resume the game sees comes from the platform. YouTube Playables requires this.

Nothing changes for the game: keep using the lifecycle hooks and don’t add visibility listeners of your own.