This plugin provides a single and simple interface for accessing fingerprint APIs on both Android 6+ and iOS.
- Check if a fingerprint scanner is available
- Fingerprint authentication
- Ionic Native support
- ngCordova support
- Fallback options
- Now with FaceID on iPhone X
- ⚡️ Works with Capacitor. Try it out ⚡️
- Android - Minimum SDK 23
- iOS - XCode 9.2 or higher required
- Please set
<preference name="UseSwiftLanguageVersion" value="4.0" />
in your config.xml
- Please set
Tutorial about using this plugin with Ionic thanks to Paul Halliday
Install from NPM
cordova plugin add cordova-plugin-fingerprint-aio --save
If you want to set a FaceID description use:
cordova plugin add cordova-plugin-fingerprint-aio --variable FACEID_USAGE_DESCRIPTION="Login now...."
Use the release candidate for testing the latest fixes
You can use preview versions with the rc
tag on npm.
cordova plugin add cordova-plugin-fingerprint-aio@rc
Use this Github repo
Get the latest development version. Not recommended!
cordova plugin add https://github.com/NiklasMerz/cordova-plugin-fingerprint-aio.git
Fingerprint.isAvailable(isAvailableSuccess, isAvailableError);
function isAvailableSuccess(result) {
/*
result depends on device and os.
iPhone X will return 'face' other Android or iOS devices will return 'finger'
*/
alert("Fingerprint available");
}
function isAvailableError(error) {
// 'error' will be an object with an error code and message
alert(error.message);
}
Fingerprint.show({
description: "Some biometric description"
}, successCallback, errorCallback);
function successCallback(){
alert("Authentication successful");
}
function errorCallback(error){
alert("Authentication invalid " + error.message);
}
- title: Title in authentication dialogue. Default:
"<APP_NAME> Biometric Sign On"
- subtitle: Subtitle in authentication dialogue. Default:
null
- description: Description in authentication dialogue. Defaults:
- iOS:
"Authenticate"
(iOS' evaluatePolicy() requires this field) - Android:
null
- iOS:
- fallbackButtonTitle: Title of fallback button. Defaults:
- When disableBackup is true
"Cancel"
- When disableBackup is false
- iOS:
"Use PIN"
- Android:
"Use Backup"
(Because backup could be anything pin/pattern/password ..haven't figured out a reliable way to determine lock type yet source)
- iOS:
- When disableBackup is true
- disableBackup: If
true
remove backup option on authentication dialogue. Default:false
. This is useful if you want to implement your own fallback. - cancelButtonTitle: For cancel button on Android
- BIOMETRIC_UNKNOWN_ERROR =
-100
; - BIOMETRIC_UNAVAILABLE =
-101
; - BIOMETRIC_AUTHENTICATION_FAILED =
-102
; - BIOMETRIC_SDK_NOT_SUPPORTED =
-103
; - BIOMETRIC_HARDWARE_NOT_SUPPORTED =
-104
; - BIOMETRIC_PERMISSION_NOT_GRANTED =
-105
; - BIOMETRIC_NOT_ENROLLED =
-106
; - BIOMETRIC_INTERNAL_PLUGIN_ERROR =
-107
; - BIOMETRIC_DISMISSED =
-108
; - BIOMETRIC_PIN_OR_PATTERN_DISMISSED =
-109
; - BIOMETRIC_SCREEN_GUARD_UNSECURED =
-110
; - BIOMETRIC_LOCKED_OUT =
-111
; - BIOMETRIC_LOCKED_OUT_PERMANENT =
-112
;
Thanks to the authors of the original fingerprint plugins
Some code is refactored from their projects and I learned how to make Cordova plugins from their great plugins:
@EddyVerbruggen and @mjwheatley
Starting with version 3.0.0 the iOS and Android parts are written from scratch.
The project is MIT licensed: MIT.