Implementation Goals
The customer app must implement the following flow:- Build the LiveForm URL using the
pidreceived from the customer server or app. - Check app permissions required by LiveForm before opening the WebView.
- Open the LiveForm URL in a full-screen WebView.
- Configure the WebView to support camera capture, image upload, cookies, and external link navigation.
Supported Versions and Minimum Requirements
LiveForm is an HTTPS-based web application. The app’s WebView must fully support modern browser features, camera permissions, file selection, and cookie/storage.
Device testing scope:
- Verify the full flow on Android 9 (API 28)+: app install, WebView loading, file selection, camera capture, cookie/storage.
- Verify the full flow on iOS 15+:
WKWebViewfile selection, camera capture, cookie/storage. - Final approval requires completing a real LiveForm submission — camera capture, upload, submit, and returnUrl/deep link navigation.
LiveForm URL
The customer app uses only the LiveForm production host. Passpid as a query parameter.
pid alone identifies the LiveForm session.
App Permissions
LiveForm uses the camera and image upload features inside the WebView. When running LiveForm as a WebView in a mobile app, the customer app must obtain camera and file access permissions before the WebView opens — permissions that would normally be handled by the browser.- iOS
- Android
Add the following usage descriptions to
Info.plist:Required Integration Flow
WebView Configuration
The WebView must allow JavaScript, storage, cookies, media playback, and media capture.- React Native
- Android Native
- iOS Native
When using Key Settings Reference
react-native-webview, the underlying WebChromeClient (Android) and WKUIDelegate (iOS) details are handled by the library’s native layer. Set the WebView props below, then verify the Android and iOS checklists separately on real devices.LiveForm URL Builder
Permission Request Example (Expo/React Native)
- Do not open the WebView.
- Show a message explaining that camera and photo library permissions are required for LiveForm capture and upload.
- Provide a button to navigate to the app settings screen.
Full-Screen Layout
LiveForm works best when it occupies as much of the screen as possible. Recommendations:- Hide the native header on the WebView route.
- Apply safe area insets to avoid the notch and home indicator.
- If the header is hidden, provide a small app-level back button.
- Do not embed the WebView inside a card or modal — let it fill the screen directly.
Verification Checklist
Verify on both iOS and Android.Verification approachThe customer app should implement its own WebView screen based on the sample code provided, then verify the real LiveForm URL and a permissions/feature test page separately.
- LiveForm URL mode: Verify the actual submission flow on the LiveForm production host.
- Permissions/feature test page: Verify WebView storage/cookie, fetch, file input, and camera capture input in a single sequential flow, independent of LiveForm state.
- Common (URL & Permissions)
- Android
- iOS WKWebView
- React Native
URL and Navigation
- A LiveForm URL in the format
https://form.argosidentity.com?pid={pid}opens successfully. pidis URL-encoded before being passed.- External custom schemes open in an external app or fail gracefully.
- Camera permission is verified before entering the WebView on first launch.
- Photo library/media permission is verified before entering the WebView on first launch.
- A recoverable message is shown if permission is denied.
- The “Open Settings” button navigates to the app settings screen.
- LiveForm loads with JavaScript enabled.
- The camera UI opens when capturing an ID document.
- The picker opens for image upload.
- Cookies and storage persist during normal WebView navigation.
- A loading state is shown while the page loads.
- A recoverable error message is shown on WebView load error or HTTP error.
Troubleshooting
Camera does not open inside LiveForm
Camera does not open inside LiveForm
Check:
- Was the app-level camera permission requested and granted before opening the WebView?
- Is
NSCameraUsageDescriptionset on iOS? - Is
android.permission.CAMERAset on Android? - Are media capture settings enabled in the WebView?
Image upload does not work
Image upload does not work
Check:
- Was photo library or media permission requested and granted?
- Is
NSPhotoLibraryUsageDescriptionset on iOS? - Are Android media permissions configured correctly for the target SDK and picker implementation?
WebView shows a blank screen
WebView shows a blank screen
Check:
- Does the URL include a valid
pid? - Is the device connected to a network?
- Are JavaScript and DOM storage enabled?
- Did the WebView callback receive an HTTP or network error?