MobBiometric (mob_biometric v0.1.0)

Copy Markdown View Source

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

authenticate(socket, opts \\ [])

@spec authenticate(
  Mob.Socket.t(),
  keyword()
) :: Mob.Socket.t()