Native Mobile Integration vs. WebView
When possible, we recommend using our native Mobile Integration (v2) instead of the WebView Flow. We do not recommend using WebView unless you have a hard constraint preventing you from using the mobile SDKs.
Reasons to use native mobile integration
- WebViews are resource-intensive and can lead to degraded performance, especially on older devices. This can manifest as reduced frame rate, longer waiting times, application freezes, and potential memory-related crashes. General performance is superior on the mobile SDKs.
- Some devices (e.g. iOS) will terminate your WebView if memory consumption is too high. Persona's autocapture flow is memory-intensive, and if overall device resource usage is high, iOS may kill the WebView running the Persona flow, leading to an interrupted user experience.
- WebView requires more engineering effort to integrate. When integrating with WebView, you must manually handle the following:
- Request API, to make API requests to Persona
- Response parser, to parse responses from the Persona API
- Requesting camera permissions (example)
- Filepicker API integration, to allow end users to select and upload files from their device
- Autocapture performance is superior on the mobile SDKs. The mobile SDKs use ML libraries provided by Apple and Google, while WebView uses a WebAssembly library that trades performance for cross-device compatibility.
- Loading speed and network resilience. The mobile SDKs have all runtime dependencies preloaded, while WebView needs to load the Inquiry flow runtime while the end user is waiting.
- Mobile SDKs look more native to the consumer app, while WebViews are more clearly browser-based third-party integrations.
Reasons to use WebView
- You have app size limitations, and using the native mobile SDKs will bring app size over an acceptable threshold.
- You have strict restrictions on what external dependencies are allowed.
- You need to support iOS 12 or earlier. Our mobile SDKs require a minimum OS version of iOS 13.
- You need to embed the Persona flow into a mobile SDK that will be used by your customers, as opposed to a mobile app.
Updated 7 months ago