What's new
This page lists what changed for game developers in the Web SDK (@frvraps/frvr-sdk). It covers new and changed APIs. Internal fixes are left out.
FRVR serves the latest released bundle from the CDN, so a game gets these changes without a rebuild. Additions are safe to feature‑detect, as shown on each linked page.
Next release
Section titled “Next release”Merged, not yet released. These arrive in the release after 14.27.0.
FRVR.profile.getLocale(): the player’s locale as a BCP 47 tag. It uses the channel’s language on YouTube Playables and Facebook Instant, the browser’s elsewhere, anden-USas the last resort. See Profile › Locale.FRVR.notifications.supportsLocalNotifications(): a synchronous check for local notification support that never prompts the player.FRVR.notifications.unscheduleLocalNotification(code)andcancelAllLocalNotifications(). See Notifications.
Changed
Section titled “Changed”- The internationalization requirement now names
FRVR.profile.getLocale(). Earlier versions of these docs namedFRVR.locale.get()andFRVR.locale.onChange(), which never existed in the SDK.
14.19.1 → 14.27.0
Section titled “14.19.1 → 14.27.0”Released between 23 June and 3 October 2026.
| What | Since | Read more |
|---|---|---|
FRVR.audio: the sound and music toggles a host draws for the player | 14.23.0 | Audio state |
FRVR.channelCharacteristics.hasNativeAudioControls and allowSharing | 14.23.0 | Channel characteristics |
FRVR.hostUI.titlebar: read, hide, and follow the titlebar of FRVR’s native apps | 14.27.0 | Host UI |
FRVR.config.host: titlebar, host session, and storage sandbox options | 14.27.0 | Configuration › host |
FRVR.auth.requestLogin(): open the host’s login screen | 14.27.0 | Auth |
FRVR.auth.getLoginCapabilities(): login methods and providers the channel offers | 14.27.0 | Auth |
Web payments: Google Pay, Apple Pay, and card checkout on the web channel | 14.22.0 | IAP › Purchases on the web |
FRVR.iap.getPurchaseOptions() and purchase(id, meta, { provider }) | 14.22.0 | IAP › Purchases on the web |
IAPPurchaseErrorPending, IAPPurchaseErrorPopupBlocked, IAPPurchaseErrorHeldByEconomy, IAPPurchaseErrorInProgress | 14.24.0 | IAP › Purchase |
FRVR.config.iap.enabled: turn purchases off for a build | 14.21.0 | Configuration |
| frvr.com game page support: the page around the game owns the loader, login, share button, and audio toggles | 14.23.0 | Channels |
| Sign in with FRVR accounts in the Google Play, iOS, and Samsung Galaxy Store apps | 14.27.0 | Auth |
Changed
Section titled “Changed”FRVR.iap.onReadycan fire more than once. It runs again when the player signs in to a different account mid‑session, so the game can restore that account’s purchases. Make the callback safe to run twice. See IAP › Account changes. (14.26.0)- A paid but unconfirmed web purchase now rejects.
FRVR.iap.purchase()throwsIAPPurchaseErrorPendinginstead of resolving, and the purchase arrives later throughgetUnconsumedPurchases(). (14.24.0) FRVR.cloudStorageworks on every channel. Channels without a cloud backend now store the data on the device instead of leaving the module unusable. That data doesn’t follow the player to another device. (14.20.0)- Facebook Instant scores are posted without a player name. Scores from players whose name the platform withholds used to be dropped. (14.25.0)
- Purchases are turned off on YouTube Playables, which has no on‑platform payments.
FRVR.iap.isReady()staysfalsethere. (14.23.0)
Corrected in these docs
Section titled “Corrected in these docs”These were wrong on the page, not changed in the SDK:
FRVR.auth.addStatusChangeListenerpasses a single boolean,isLoggedIn. The docs showed an object withisLoggedInandplatform. See Auth.- The profile image method is
FRVR.profile.image(). The docs called itphoto(). - Analytics events don’t carry a locale field.
- Email code login (
FRVR.auth.requestEmailLoginCode) has been available since 14.18.0 and is now documented in Auth.