Configuration Options
You can customize the behavior of the PRODUCT React Native SDK through configuration options.
Setting Configuration
Pass options when calling initialize():
import Upscope from "@upscopeio/react-native-sdk";
Upscope.initialize({
apiKey: "YOUR_API_KEY",
requireAuthorizationForSession: true,
authorizationPromptTitle: "Screen Sharing Request",
authorizationPromptMessage:
"Allow {%agentName%|Support} to view your screen?",
endOfSessionMessage: "Thanks for using screen sharing!",
translationsYes: "Allow",
translationsNo: "Decline",
});
Configuration Options
Message Placeholders
The authorizationPromptMessage supports these placeholders:
{%agentName%|fallback}- Agent's name with a fallback if unavailable{%currentDomain%}- App name
Example:
authorizationPromptMessage: '{%agentName%|Our support team} would like to view your screen',
UI Display
| Option | Type | Default | Description |
|---|---|---|---|
showTerminateButton | boolean | (Set through the admin interface) | Show a button in the banner to end the screen sharing session. |
endOfSessionMessage | string | (Set through the admin interface) | Message displayed when the session ends. |
stopSessionText | string | (Set through the admin interface) | Custom text for the stop session button. |
Remote Control
| Option | Type | Default | Description |
|---|---|---|---|
allowRemoteClick | boolean | true | Allow agents to remotely tap on the screen. |
allowRemoteScroll | boolean | true | Allow agents to remotely scroll the screen. |
requireControlRequest | boolean | (Set through the admin interface) | Require user approval before agents can use remote input. |
controlRequestTitle | string | (Set through the admin interface) | Custom title for the control request prompt. |
controlRequestMessage | string | (Set through the admin interface) | Custom message for the control request prompt. |
Lookup Code
| Option | Type | Default | Description |
|---|---|---|---|
enableLookupCodeOnShake | boolean | (Set through the admin interface) | Show lookup code popup when device is shaken. |
lookupCodeKeyTitle | string | (Set through the admin interface) | Custom title for the shake detection alert. |
lookupCodeKeyMessage | string | (Set through the admin interface) | Custom message for shake alert. Supports {%lookupCode%} placeholder. |
Localization Strings
| Option | Type | Description |
|---|---|---|
translationsYes | string | Custom text for "Allow" button in authorization prompt. |
translationsNo | string | Custom text for "Deny" button in authorization prompt. |
translationsOk | string | Custom text for "OK" button. |
Multi-Language Translations
Every text option (titles, messages, and the strings above) also accepts an object keyed by language code instead of a single string. The translation matching the device language is shown, falling back to en if the device language isn't included:
translationsYes: { en: "Yes", it: "Si" },
translationsNo: { en: "No", it: "No" },
All of these can also be configured per language through the dashboard.
Full-Device Screen Sharing (iOS)
| Option | Type | Description |
|---|---|---|
broadcastAppGroupId | string | iOS only — required for full-device screen sharing via the broadcast extension. The App Group identifier shared between the main app and the broadcast extension (e.g. group.com.example.myapp). |
broadcastExtensionBundleId | string | iOS only — required for full-device screen sharing via the broadcast extension. The bundle ID of the Broadcast Upload Extension target (e.g. com.example.myapp.BroadcastExtension). |
System Options
| Option | Type | Description |
|---|---|---|
autoConnect | boolean | Automatically connect on initialization. Default: true (set through the admin interface). |
region | string | Server region for connections. |
Full Example
Upscope.initialize({
apiKey: "YOUR_API_KEY",
autoConnect: true,
requireAuthorizationForSession: true,
authorizationPromptTitle: "Screen Share",
authorizationPromptMessage: "{%agentName%|Support} wants to help you",
showTerminateButton: true,
endOfSessionMessage: "Session ended. Thank you!",
stopSessionText: "End Session",
allowRemoteClick: true,
allowRemoteScroll: true,
enableLookupCodeOnShake: true,
lookupCodeKeyTitle: "Your Code",
lookupCodeKeyMessage: "Share this code: {%lookupCode%}",
translationsYes: "Yes, share",
translationsNo: "No thanks",
translationsOk: "Got it",
region: "us-east",
});
