Biometric authentication (Face ID / Touch ID / fingerprint) — a Mob plugin
(extracted from mob core's Mob.Biometric in Wave 2).
No permission dialog is shown — uses the device's existing biometric enrollment, so this plugin registers no permission capability.
MobBiometric.authenticate(socket, reason: "Confirm payment")Result arrives as:
handle_info({:biometric, :success}, socket)
handle_info({:biometric, :failure}, socket)
handle_info({:biometric, :not_available}, socket):not_available is returned if the device has no biometric hardware or the
user has not enrolled any biometrics.
iOS: LAContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, ...).
Face ID additionally requires NSFaceIDUsageDescription in Info.plist —
merged from this plugin's manifest at build time.
Android: BiometricPrompt (androidx.biometric). NOTE: androidx.biometric
1.1.0's BiometricPrompt requires a FragmentActivity host; mob's
MainActivity is a ComponentActivity, so on today's hosts the bridge's
safe cast fails and :not_available is delivered (verbatim parity with
core's current behavior — see MobBiometricBridge.kt).
Summary
Functions
@spec authenticate( Mob.Socket.t(), keyword() ) :: Mob.Socket.t()