Skip to content

Commit e676953

Browse files
author
dms
committed
Add FaceID support
1 parent 4722dd7 commit e676953

File tree

5 files changed

+16
-8
lines changed

5 files changed

+16
-8
lines changed

android/src/main/java/com/hieuvp/fingerprint/ReactNativeFingerprintScannerModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public void isSensorAvailable(final Promise promise) {
111111
if (errorMessage != null) {
112112
promise.reject(errorMessage, errorMessage);
113113
} else {
114-
promise.resolve(true);
114+
promise.resolve("Fingerprint");
115115
}
116116
}
117117
}

ios/ReactNativeFingerprintScanner.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#else // React Native < 0.40
44
#import "RCTBridgeModule.h"
55
#endif
6+
#import <LocalAuthentication/LocalAuthentication.h>
67

78
@interface ReactNativeFingerprintScanner : NSObject <RCTBridgeModule>
8-
9+
- (NSString *_Nonnull)getBiometryType:(LAContext *_Nonnull)context;
910
@end

ios/ReactNativeFingerprintScanner.m

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
#import "RCTUtils.h"
77
#endif
88

9-
#import <LocalAuthentication/LocalAuthentication.h>
10-
119
@implementation ReactNativeFingerprintScanner
1210

1311
RCT_EXPORT_MODULE();
@@ -18,7 +16,7 @@ @implementation ReactNativeFingerprintScanner
1816
NSError *error;
1917

2018
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
21-
callback(@[[NSNull null], @true]);
19+
callback(@[[NSNull null], [self getBiometryType:context]]);
2220
} else {
2321
NSString *errorReason;
2422

@@ -118,4 +116,13 @@ @implementation ReactNativeFingerprintScanner
118116
}
119117
}
120118

119+
- (NSString *)getBiometryType:(LAContext *)context
120+
{
121+
if (@available(iOS 11, *)) {
122+
return context.biometryType == LABiometryTypeFaceID ? @"Face ID" : @"Touch ID";
123+
}
124+
125+
return @"Touch ID";
126+
}
127+
121128
@end

src/isSensorAvailable.android.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const { ReactNativeFingerprintScanner } = NativeModules;
66
export default () => {
77
return new Promise((resolve, reject) => {
88
ReactNativeFingerprintScanner.isSensorAvailable()
9-
.then(() => resolve(true))
9+
.then((biometryType) => resolve(biometryType))
1010
.catch(error => reject(createError(error.message)));
1111
});
1212
}

src/isSensorAvailable.ios.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ const { ReactNativeFingerprintScanner } = NativeModules;
55

66
export default () => {
77
return new Promise((resolve, reject) => {
8-
ReactNativeFingerprintScanner.isSensorAvailable(error => {
8+
ReactNativeFingerprintScanner.isSensorAvailable((error, biometryType) => {
99
if (error) return reject(createError(error.message));
10-
resolve(true);
10+
resolve(biometryType);
1111
});
1212
});
1313
}

0 commit comments

Comments
 (0)