Skip to Content
New: AI Sign Language Avatars now in beta! View Sign Language feature ->
MobileGetting Started

Getting Started with the Mobile SDK

Every WelcomingWeb SDK follows the same three-step integration shape: configure, track your screens, and optionally add the in-app panel. The code is platform-native; the concepts, rules and dashboard are identical.

You need an API key from your WelcomingWeb dashboard. If you don’t have one yet, create a free account at welcomingweb.com  and generate a key from Settings → API Keys.

Pick Your Platform

Three-Step Integration

Step 1: Install the Package

# npm npm install @welcomingweb/react-native-sdk # yarn yarn add @welcomingweb/react-native-sdk

No pod install or gradle sync is required — the SDK uses only JavaScript APIs available in React Native core.

Step 2: Configure the SDK

Call configure() once at app startup, before any navigation renders.

App.tsx
import { WelcomingWeb } from '@welcomingweb/react-native-sdk'; WelcomingWeb.configure({ apiKey: 'YOUR_API_KEY', appId: 'com.yourcompany.yourapp', appVersion: '1.0.0', environment: 'development', autoScan: true, debug: true, });

For the full list of configuration options, see the configuration reference below.

Step 3: Track Your Screens

Each platform has its own idiomatic way to register screens for scanning.

Wrap each screen with the HOC, or use the hook in function components:

screens/HomeScreen.tsx
import { withAccessibilityTracking } from '@welcomingweb/react-native-sdk'; function HomeScreen() { return <ScrollView>{/* screen content */}</ScrollView>; } export default withAccessibilityTracking(HomeScreen, 'HomeScreen');

Or with the hook:

import { useAccessibilityTracking } from '@welcomingweb/react-native-sdk'; export default function ProductDetailScreen() { const a11yRef = useAccessibilityTracking('ProductDetailScreen'); return <ScrollView ref={a11yRef}>{/* ... */}</ScrollView>; }

Step 4: (Optional) Add the Accessibility Panel

Give your end users an in-app panel for text size, contrast, reduce motion and more. See the Accessibility Panel guide for full setup on each platform.

Verify the Integration

Launch your app in development mode and navigate between screens. With debug: true set, you should see scan logs in your platform’s console (Metro console for RN, Xcode console for iOS, logcat for Android, flutter logs for Flutter):

[WelcomingWeb] Scanning screen: HomeScreen [WelcomingWeb] Found 45 nodes, 8 interactive [WelcomingWeb] Scan complete: 2 critical, 1 major, 0 minor — score 94.4 [WelcomingWeb:API] Response: 200

Open your WelcomingWeb dashboard  to see the scan appear under your app’s session view.

Configuration Reference

All SDKs accept the same configuration options. Only apiKey and appId are required.

OptionTypeDefaultDescription
apiKeystring(required)Your WelcomingWeb API key.
appIdstring(required)Unique app identifier, e.g. com.company.app.
appVersionstringnullApp version string. Sent with every scan.
environmentenumdevelopmentSet to production to disable scanning unless enableInProduction is true.
autoScanbooleantrueScan automatically on screen changes. Set false for manual or CI scanning.
scanDelaynumber (ms)600Milliseconds to wait after a screen change before scanning.
debugbooleanfalseEnable verbose console logging.
reportingEndpointstringnullCustom API endpoint URL. Overrides the default.
enableInProductionbooleanfalseAllow scanning in production builds.
disabledRulesstring array[]Rule IDs to suppress globally. See rule reference.
excludeScreensstring array[]Screen names to never scan.
maxStoredScansnumber50Maximum scan results kept in memory.
onScanCompletefunctionnullCallback invoked after each scan with the full result.
onIssueFoundfunctionnullCallback invoked once per issue found during a scan.

Common Issues

⚠️

“Found 0 nodes” on scan — the screen may not have finished laying out when the scan fired. Increase scanDelay from 600 ms to 1200 ms for screens with complex or virtualised content. Platform-specific causes are covered on each platform page.

⚠️

Scans not firing on navigation — each SDK relies on its platform’s navigation primitive (useFocusEffect, RouteObserver, ActivityLifecycleCallbacks, viewDidAppear swizzling). See your platform page for the exact setup.

⚠️

Scans appear in debug logs but not on the dashboard — enable debug: true and check for [WelcomingWeb:API] Response: 200. If you see 401, verify apiKey. If you see 403 app_deactivated, the app is disabled on the backend. If you see 409 platform_mismatch, the app was registered under a different platform — re-register or contact support.

Next Steps

Last updated on