WebView integration
Embed OmniLab inside a mobile app or controlled wrapper with a modern WebView.
Use WebView integration when OmniLab should stay inside a native app, kiosk shell, or managed wrapper instead of opening in the device browser.
When to use a WebView
WebViews are a good fit when:
- a loyalty, retail, or event app should keep the participant inside the app shell
- a kiosk or wrapper application should control everything around the OmniLab experience
- you need the OmniLab page to appear inside a native navigation flow
Technical requirements
| Requirement | Expectation |
|---|---|
| Rendering engine | Use a current WebView engine equivalent to a modern Chrome or Chromium-based runtime |
| JavaScript | Enabled |
| Parent-child messaging | postMessage support available if the host app needs to react to OmniLab events |
| Layout | Full-screen or edge-to-edge container recommended |
| Touch handling | Touch and scroll events forwarded correctly |
| Device permissions | Camera, microphone, or geolocation permissions granted when the experience requires them |
Using a kiosk-style wrapper?
If the wrapper also manages scanners, inactivity flows, or kiosk home screens, read the Kiosk section as well. Kiosk integrations add operational and device requirements beyond a standard WebView.
React Native example
Install the package:
npm install react-native-webviewThen load the OmniLab page in a WebView:
import React from "react";
import { WebView } from "react-native-webview";
export default function OmniLabWebView() {
return (
<WebView
source={{
uri: "https://experience.example.com/<campaign-public-link>?c=<touchpoint-id>&embedded=1",
}}
style={{ flex: 1 }}
javaScriptEnabled
/>
);
}Use a campaign landing page URL when the app should show several experiences, or a direct touchpoint URL when it should launch one specific experience immediately.
Native iOS and Android guidance
- Use the platform's standard
WebViewcomponent or equivalent wrapper. - Enable JavaScript.
- Verify that camera, microphone, geolocation, and file permissions are passed through when needed.
- Test virtual keyboard behavior if the experience includes forms or sign-in.
- If your app must react to parent-child messages, confirm that the WebView bridge supports
postMessage.
Test checklist
- Campaign or touchpoint URL loads correctly inside the app
- Sign-in, cookies, and redirects behave as expected in the WebView
- Camera, microphone, geolocation, and keyboard prompts appear correctly
- Portrait and landscape layouts behave acceptably on target devices
- Network loss, app backgrounding, and app resume do not break the participant flow