Mobiles Onboarding
Betten Sie die gehostete Aufnahmeseite von Live ID in eine native App ein — WebView-Einrichtung und Kameraberechtigungen für iOS, Android und .NET MAUI sowie sofort lauffähige Beispiel-Apps.
In einer nativen App betten Sie die gehostete Aufnahmeseite in eine WebView ein, statt eine eigene Kameraoberfläche zu bauen. Die WebView durchläuft denselben Ablauf wie im Web — Selfie, Gesichtsabgleich, Lebenderkennung —, und Ihre App liest das Ergebnis aus, indem sie die Sitzung abfragt.
Die gehostete Seite setzt frame-ancestors 'none', daher kann sie nicht in ein
Web-iframe eingebettet werden. Eine native WebView ist ein Laden auf oberster
Ebene und kein iframe, daher funktioniert dies — und es ist das richtige Muster
(festgelegtes v1-Design).
Das Muster
graph TD
A[App: user taps Log in] --> B[Ask your backend to mint a session]
B --> C[Backend returns captureUrl + sessionToken]
C --> D[Open captureUrl in a WebView]
D --> E[WebView: selfie -> face match + liveness]
A --> F[Poll GET …/sessions/sessionToken every 2s]
E --> F
F --> G{status == completed?}
G -->|yes| H[Read matched -> grant or deny, close WebView]
G -->|no| F
Zwei Dinge braucht jede Plattform:
- Serverseitig erzeugen, nur das Token halten. Die App ruft Ihr Backend auf,
das bei Certivant
POST /sessionsmit dem Identifikationsschlüssel aufruft. Die App erhält nurcaptureUrl+sessionToken. - Die Kameraanfrage der WebView gewähren.
getUserMediainnerhalb einer WebView ist blockiert, bis Sie sie ausdrücklich gewähren — der Ansatzpunkt unterscheidet sich je Plattform (siehe unten).
Kameraberechtigung je Plattform
iOS (WKWebView). Deklarieren Sie NSCameraUsageDescription, erlauben Sie
Medienwiedergabe inline und gewähren Sie die Aufnahmeanfrage über WKUIDelegate
(iOS 15+):
let config = WKWebViewConfiguration()
config.allowsInlineMediaPlayback = true
config.mediaTypesRequiringUserActionForPlayback = []
// WKUIDelegate:
func webView(_ webView: WKWebView,
requestMediaCapturePermissionFor origin: WKSecurityOrigin,
initiatedByFrame frame: WKFrameInfo,
type: WKMediaCaptureType,
decisionHandler: @escaping (WKPermissionDecision) -> Void) {
decisionHandler(.grant)
}
Android (WebView). Fügen Sie die Manifest-Berechtigung CAMERA hinzu, fordern
Sie sie zur Laufzeit an und gewähren Sie die Anfrage der Seite in der
WebChromeClient:
webView.settings.javaScriptEnabled = true
webView.settings.mediaPlaybackRequiresUserGesture = false
webView.webChromeClient = object : WebChromeClient() {
override fun onPermissionRequest(req: PermissionRequest) {
runOnUiThread { req.grant(arrayOf(PermissionRequest.RESOURCE_VIDEO_CAPTURE)) }
}
}
.NET MAUI. Passen Sie den gemeinsamen WebView-Handler einmal an; jede
Plattform verdrahtet ihre eigene Gewährung (Android WebChromeClient,
iOS/Mac WKUIDelegate, Windows WebView2 PermissionRequested). Fügen Sie
NSCameraUsageDescription (iOS/Mac), die Berechtigung CAMERA (Android) und
die Fähigkeit Webcam (Windows) hinzu.
Microsoft.Maui.Handlers.WebViewHandler.Mapper.AppendToMapping(
"LiveIdCamera", (handler, view) => {
#if ANDROID
handler.PlatformView.SetWebChromeClient(new LiveIdChromeClient());
#elif IOS || MACCATALYST
handler.PlatformView.UIDelegate = new LiveIdUIDelegate();
#elif WINDOWS
// CoreWebView2.PermissionRequested -> Allow (Camera)
#endif
});
Das Ergebnis auslesen
Fragen Sie den Statusendpunkt ab und beenden Sie die Abfrage, sobald die Sitzung abgeschlossen ist:
GET https://app.certivant.com/api/kyc/public/live-id/sessions/{sessionToken}
→ { "status": "completed", "matched": true, … }
matched === true → Anmeldung gewähren. Ihr Backend kann außerdem den Webhook
live_id.validation.completed abonnieren, um ein maßgebliches Signal auf Serverseite
zu erhalten — nützlich, wenn die Entscheidung über den Zugang vollständig auf Ihrem
Backend liegen soll.
Beispiel-Apps
Vollständige, lauffähige Referenzen finden Sie im Repository unter
samples/live-id-validation/:
| Beispiel | Stack | Zielplattformen |
|---|---|---|
android-kotlin/ | Kotlin | Android |
ios-swiftui/ | SwiftUI | iOS 15+ |
maui/ | .NET MAUI | Android · iOS · Windows · macOS |
Jedes Beispiel besteht aus einem einzigen Bildschirm: Tippen Sie auf Mit Selfie verifizieren → WebView → Ergebnis. Legen Sie Ihren Host und eine Sitzungsquelle in der LiveIdConfig des Beispiels fest (Ihr Backend-Endpunkt oder ein per curl erzeugtes Token für einen schnellen Test) und starten Sie die App. Die Schritte zum Erstellen und die genauen Dateien, die die Kameragewährung und die Abfrage verdrahten, finden Sie in der README des jeweiligen Beispiels.
Live-ID-API-Referenz
Endpunkte für Live ID Validation — einen Identifikationsschlüssel ausstellen, eine Aufnahmesitzung erzeugen, die gehostete Aufnahmeseite öffnen, ein Selfie übermitteln, das Ergebnis abfragen und die Nutzlast des Validierungs-Webhooks.
MCP-Server
Verbinden Sie einen KI-Assistenten über das Model Context Protocol mit Certivant — die Verifizierungswarteschlange sichten, Formulare versenden und nachverfolgen, säumige Antragsteller nachfassen, Entscheidungen erklären und Berichte erstellen, alles über Ihren bestehenden API-Schlüssel.