Returning.AIDevelopers
v1

Guides / Mobile Widget SDKs

.md

Mobile Widget SDKs

Configuration

The four mobile packages share one custom-widget contract. Platform spelling differs, but the configuration responsibilities stay the same.

Required values

Widget ID
Copy the supplied URL-safe custom-widget ID unchanged. Do not use a raw Mongo ObjectId or derive an ID from a bundle filename.
Bundle or page URL
Use the URL supplied for this widget and environment. Bundle content maps to ReturningAIWidgetContent.bundle; hosted content maps to ReturningAIWidgetContent.page.
Client origin
Use the exact HTTPS origin allowlisted on this widget. It has no path, query, fragment, or user information.
Token provider
Fetch a current embed token from the host backend. The configuration object never accepts Returning.AI access credentials.

Widget runtime

Mobile examples use the latest public Widget SDK runtime:

runtime URL
https://unpkg.com/@returningai/widget-sdk/dist/rai-widget.iife.js

The field is named runtimeUrl in Flutter, Android, and React Native, and runtimeURL in Swift.

Standard hosts are built in

Endpoint presets and domain keys are optional. Set them only when Returning.AI supplies environment-specific values.

Display, theme, and locale

  • Choose light, dark, or system theme through the platform theme type.
  • Use display options for initial height, automatic height, bounds, loading text, background color, and automatic refresh.
  • Set one locale value. The SDK writes compatible locale and language attributes for the widget runtime.
  • Use distinct, non-secret storagePrefix values when multiple widgets appear on one screen.

Events

Each package exposes typed mounted, ready, logout, session-expired, height-change, error, and external-navigation events. Other nonempty runtime event names may arrive as custom events with JSON-compatible detail.

Host callbacks

Default callback names are callbackFieldOptions, storePurchaseSuccess, and milestoneCtaClick. Register a handler for every callback the host intends to serve. Missing handlers fail closed with a sanitized error.

Callbacks such as field options may require a server signature. Mint the signature on the backend.

callback-signature.http
POST https://api-v2.returning.ai/v2/api/widget-access-keys/callback-signature
Content-Type: application/json
Authorization: <server-side credentials>

// Send and sign the callback payload from your backend.
// Never place signing credentials in the mobile app.

The SDK keeps configured HTTPS hosts inside its WebView. It delegates an off-allowlist HTTPS main-frame or new-window URL through onExternalNavigation. Open that URL through the host application. Unknown schemes and plain HTTP are rejected outside an explicit localhost debug configuration.

Debug mode

Production URLs must use HTTPS. Enable debug only for explicit localhost HTTP development. Never broaden this exception to a remote insecure host.