How it works
Mobile integration follows a two-part architecture:
Your API key never leaves your server. The mobile app only ever sees a short-lived embed token.
The WebView HTML template
This is the universal mobile player. Load it in any WebView with the embed token injected:{{EMBED_TOKEN}} replaced server-side.
Never embed your API key in the WebView HTML. The embed token is short-lived (2 hours), consumed on submit, and scoped to a single learner and assessment — it is safe to put in client code.
React Native
React Native apps can useEdpireClient directly for server-side operations — it uses fetch, which is available natively in React Native. For the player, open a WebView with the HTML template.
Server-side (your Node.js backend):
Flutter
Flutter apps call your backend viahttp or dio to fetch the embed token, then load the player HTML in a WebView.
Mint the token from your backend (Dart HTTP call):
flutter_inappwebview):
Native iOS / Android
The same HTML template works in any native WebView:- iOS:
WKWebView— useloadHTMLString(_:baseURL:)and receive messages viaWKScriptMessageHandler - Android:
WebView— useloadDataWithBaseURL()and receive messages viaaddJavascriptInterface