Skip to main content

React Native Components v5.3.0

· 2 min read

Improves the public interface of the biometrics enrollment flow, and minor fixes.

Added

  • BiometricsEnrollmentResult to define the potential outcomes of the enrollment process.

Changed

  • Updated iOS SDK version to 3.4.0
  • Updated Android SDK version to 3.9.0

Deprecated

  • Deprecated startEnrollment(firebaseToken: string, authToken: string): Promise<Result<string, WeavrError>>; in favour of startEnrollment(): Promise<BiometricsEnrollmentResult>;

Migration guide

Update any calls to startEnrollment(firebaseToken: string, authToken: string) to startEnrollment(), making sure you take the following actions:

  • Ensure you have provided a fresh token to setUserToken()
  • Ensure you have provided a fresh Firebase Cloud Messaging (FCM) token via updateFCMToken()
  • Update your call to startEnrollment to a snippet similar to:
let result = await startEnrollment();

switch (result.case) {
case "completed":
console.log("Enrollment completed");
break;

case "initialisationError":
console.log("SDK not initialised:" + result.error);
break;

case "cryptographyError":
console.log("Cryptography error:" + result.error);
break;

case "noBiometricsAvailable":
switch (result.biometricAvailability) {
case "noneEnrolled":
console.log("Device supports biometrics but none are enrolled");
break;

case "hwUnavailable":
console.log("Biometrics hardware is temporarily unavailable");
break;

case "noHardware":
console.log("Device has no biometrics hardware");
break;
}
break;

case "challengeFailed":
console.log("Challenge failed:" + result.cause);
break;

case "failedBiometricsChallenge":
console.log("User failed biometrics challenge");
break;

case "unauthorized":
console.log("Unauthorized. Please sign in again.");
break;

case "userDoesNotConsent":
console.log("User did not consent to enrollment");
break;

case "failedToLoadBrand":
console.log("Failed to load biometrics configuration");
break;

case "noPhoneNumberAvailable":
console.log("No phone number available");
break;
}