pediatric-ai-scribe-v3/mobile/capacitor.config.json
Daniel baa6362d29 Native Android: biometric auth, foreground service bridge, mic fix
Major Android native improvements:

Biometric authentication:
- Native AndroidX BiometricPrompt on app launch (2nd launch onwards)
- Supports fingerprint, face, iris, and device PIN/password fallback
- Gracefully skips if no biometric hardware or first launch
- Uses SharedPreferences to track first launch

Microphone permission:
- Added MODIFY_AUDIO_SETTINGS permission (required for WebView audio)
- Added androidScheme: "https" in Capacitor config (getUserMedia requires
  secure context)
- WebChromeClient properly grants WebView permission after Android
  runtime permission is obtained
- Handles pending permission request across the async flow

Background recording bridge:
- NativeRecording JavaScript interface exposed to WebView
- startForegroundService() / stopForegroundService() callable from JS
- Web app calls these on recording start/stop in liveEncounter.js
- AudioRecordingService keeps CPU awake + shows notification when recording
- Recording survives screen lock via foreground service + wake lock

Also:
- USE_BIOMETRIC permission added to manifest
- androidx.biometric:biometric dependency added to build.gradle
- Haptic fallback to navigator.vibrate when Capacitor plugins unavailable
2026-04-11 03:42:23 +02:00

34 lines
760 B
JSON

{
"appId": "com.pedshub.scribe",
"appName": "PedScribe",
"webDir": "src",
"server": {
"allowNavigation": ["*"]
},
"plugins": {
"SplashScreen": {
"launchShowDuration": 1500,
"backgroundColor": "#2563eb",
"showSpinner": true,
"spinnerColor": "#ffffff"
},
"PushNotifications": {
"presentationOptions": ["badge", "sound", "alert"]
},
"Keyboard": {
"resize": "body",
"resizeOnFullScreen": true
}
},
"android": {
"allowMixedContent": true,
"backgroundColor": "#2563eb",
"webContentsDebuggingEnabled": true,
"appendUserAgent": "PedScribe-Android",
"androidScheme": "https"
},
"ios": {
"backgroundColor": "#2563eb",
"contentInset": "automatic"
}
}