Basic UI Customization
On this page, explore the customization capabilities available for the Liveness Assessment user experience. The liveness assessment process consists of several steps, and in each step there are elements that can be customized.
Info
You can find the customization examples in the Architecture section.
Start Screen
This is the initial screen that opens once the liveness assessment process starts. It provides basic instructions on how a person can prepare for the assessment, and the Go button.
Button
For the Go button, you can customize text color, text font size, and background color:
let uiConfiguration = UIConfiguration {
$0.setColor(.white, forItem: .OnboardingScreenStartButtonTitle)
$0.setFont(.systemFont(ofSize: 18.0), forItem: .OnboardingScreenStartButton)
$0.setColor(.black, forItem: .OnboardingScreenStartButtonBackground)
}
FaceSDK.service.customization.configuration = uiConfiguration
RFSUIConfiguration *uiConfiguration = [RFSUIConfiguration configurationWithBuilderBlock:^(RFSUIConfigurationBuilder * _Nonnull builder) {
[builder setColor:[UIColor whiteColor] forItem:OnboardingScreenStartButtonTitle];
[builder setFont:[UIFont systemFontOfSize:18.0] forItem:OnboardingScreenStartButton];
[builder setColor:[UIColor blackColor] forItem:OnboardingScreenStartButtonBackground];
}];
RFSFaceSDK.service.customization.configuration = uiConfiguration;
val uiConfiguration = UiConfiguration.Builder()
.setColor(CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_BACKGROUND, R.drawable.black)
.setColor(CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_TITLE, R.color.white)
.setFont(CustomizationFont.ONBOARDING_SCREEN_START_BUTTON, R.font.roboto)
.build()
FaceSDK.Instance().customization.setUiConfiguration(uiConfiguration)
UiConfiguration uiConfiguration = new UiConfiguration.Builder()
.setColor(CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_BACKGROUND, R.drawable.black)
.setColor(CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_TITLE, R.color.white)
.setFont(CustomizationFont.ONBOARDING_SCREEN_START_BUTTON, R.font.roboto)
.build();
FaceSDK.Instance().getCustomization().setUiConfiguration(uiConfiguration);
var configuration: any = {}
var font = new Font()
font.size = 18
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_BACKGROUND] = 0xff000000
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_TITLE] = 0xffffffff
configuration[Enum.CustomizationFont.ONBOARDING_SCREEN_START_BUTTON] = font
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration = {};
var font = new Font();
font.size = 18;
configuration[CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_BACKGROUND] = 0xff000000;
configuration[CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_TITLE] = 0xffffffff;
configuration[CustomizationFont.ONBOARDING_SCREEN_START_BUTTON] = font.toJson();
FaceSDK.setUiConfiguration(configuration);
var configuration: any = {}
var font = new Font()
font.size = 18
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_BACKGROUND] = 0xff000000
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_TITLE] = 0xffffffff
configuration[Enum.CustomizationFont.ONBOARDING_SCREEN_START_BUTTON] = font
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration: any = {}
var font = new Font()
font.size = 18
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_BACKGROUND] = 0xff000000
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_START_BUTTON_TITLE] = 0xffffffff
configuration[Enum.CustomizationFont.ONBOARDING_SCREEN_START_BUTTON] = font
FaceSDK.setUiConfiguration(configuration)
Title and Subtitle
For the title and subtitle labels, you can set color and font size:
let uiConfiguration = UIConfiguration {
$0.setColor(.blue, forItem: .OnboardingScreenTitleLabelText)
$0.setFont(.systemFont(ofSize: 20.0), forItem: .OnboardingScreenTitleLabel)
$0.setColor(.green, forItem: .OnboardingScreenSubtitleLabelText)
$0.setFont(.systemFont(ofSize: 16.0), forItem: .OnboardingScreenSubtitleLabel)
}
FaceSDK.service.customization.configuration = uiConfiguration
RFSUIConfiguration *uiConfiguration = [RFSUIConfiguration configurationWithBuilderBlock:^(RFSUIConfigurationBuilder * _Nonnull builder) {
[builder setColor:[UIColor blueColor] forItem:OnboardingScreenTitleLabelText];
[builder setFont:[UIFont systemFontOfSize:20.0] forItem:OnboardingScreenTitleLabel];
[builder setColor:[UIColor greenColor] forItem:OnboardingScreenSubtitleLabelText];
[builder setFont:[UIFont systemFontOfSize:16.0] forItem:OnboardingScreenSubtitleLabel];
}];
RFSFaceSDK.service.customization.configuration = uiConfiguration;
val uiConfiguration = UiConfiguration.Builder()
.setColor(CustomizationColor.ONBOARDING_SCREEN_TITLE_LABEL_TEXT, R.color.blue)
.setFont(CustomizationFont.ONBOARDING_SCREEN_TITLE_LABEL, R.font.roboto)
.setColor(CustomizationColor.ONBOARDING_SCREEN_SUBTITLE_LABEL_TEXT, R.color.green)
.setFont(CustomizationFont.ONBOARDING_SCREEN_SUBTITLE_LABEL, R.font.roboto)
.build()
FaceSDK.Instance().customization.setUiConfiguration(uiConfiguration)
UiConfiguration uiConfiguration = new UiConfiguration.Builder()
.setColor(CustomizationColor.ONBOARDING_SCREEN_TITLE_LABEL_TEXT, R.color.blue)
.setFont(CustomizationFont.ONBOARDING_SCREEN_TITLE_LABEL, R.font.roboto)
.setColor(CustomizationColor.ONBOARDING_SCREEN_SUBTITLE_LABEL_TEXT, R.color.green)
.setFont(CustomizationFont.ONBOARDING_SCREEN_SUBTITLE_LABEL, R.font.roboto)
.build();
FaceSDK.Instance().getCustomization().setUiConfiguration(uiConfiguration);
var configuration: any = {}
var font = new Font()
font.size = 20
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_TITLE_LABEL_TEXT] = 0xff0000ff
configuration[Enum.CustomizationFont.ONBOARDING_SCREEN_TITLE_LABEL] = font
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration = {};
var font = new Font();
font.size = 20;
configuration[CustomizationColor.ONBOARDING_SCREEN_TITLE_LABEL_TEXT] = 0xff0000ff;
configuration[CustomizationFont.ONBOARDING_SCREEN_TITLE_LABEL] = font.toJson();
FaceSDK.setUiConfiguration(configuration);
var configuration = {}
var font = new Font()
font.size = 20
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_TITLE_LABEL_TEXT] = 0xff0000ff
configuration[Enum.CustomizationFont.ONBOARDING_SCREEN_TITLE_LABEL] = font
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration: any = {}
var font = new Font()
font.size = 20
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_TITLE_LABEL_TEXT] = 0xff0000ff
configuration[Enum.CustomizationFont.ONBOARDING_SCREEN_TITLE_LABEL] = font
FaceSDK.setUiConfiguration(configuration);
Other Elements
The other Start screen customizable elements are the following:
- Screen background: Color
- Message text labels: Color, font size
- Images
let uiConfiguration = UIConfiguration {
$0.setColor(.lightGray, forItem: .OnboardingScreenBackground)
$0.setColor(.green, forItem: .OnboardingScreenMessageLabelsText)
$0.setFont(.systemFont(ofSize: 14.0), forItem: .OnboardingScreenMessageLabels)
$0.setImage(UIImage(named: "custom_image_illumination")!, forItem: .OnboardingScreenIllumination)
$0.setImage(UIImage(named: "custom_image_accessories")!, forItem: .OnboardingScreenAccessories)
$0.setImage(UIImage(named: "custom_image_camera_level")!, forItem: .OnboardingScreenCameraLevel)
}
FaceSDK.service.customization.configuration = uiConfiguration
RFSUIConfiguration *uiConfiguration = [RFSUIConfiguration configurationWithBuilderBlock:^(RFSUIConfigurationBuilder * _Nonnull builder) {
[builder setColor:[UIColor lightGrayColor] forItem:OnboardingScreenBackground];
[builder setColor:[UIColor greenColor] forItem:OnboardingScreenMessageLabelsText];
[builder setFont:[UIFont systemFontOfSize:14.0] forItem:OnboardingScreenMessageLabels];
[builder setImage:[UIImage imageNamed:@"custom_image_illumination"] forItem:OnboardingScreenIllumination];
[builder setImage:[UIImage imageNamed:@"custom_image_accessories"] forItem:OnboardingScreenAccessories];
[builder setImage:[UIImage imageNamed:@"custom_image_camera_level"] forItem:OnboardingScreenCameraLevel];
}];
RFSFaceSDK.service.customization.configuration = uiConfiguration;
val uiConfiguration = UiConfiguration.Builder()
.setColor(CustomizationColor.ONBOARDING_SCREEN_BACKGROUND, R.color.background_color)
.setColor(CustomizationColor.ONBOARDING_SCREEN_MESSAGE_LABELS_TEXT, R.color.message_color)
.setFont(CustomizationFont.ONBOARDING_SCREEN_MESSAGE_LABELS, R.font.roboto)
.setImage(CustomizationImage.ONBOARDING_SCREEN_ILLUMINATION, R.drawable.custom_image_illumination)
.setImage(CustomizationImage.ONBOARDING_SCREEN_ACCESSORIES, R.drawable.custom_image_accessories)
.setImage(CustomizationImage.ONBOARDING_SCREEN_CAMERA_LEVEL, R.drawable.custom_image_camera_level)
.build()
FaceSDK.Instance().customization.setUiConfiguration(uiConfiguration)
UiConfiguration uiConfiguration = new UiConfiguration.Builder()
.setColor(CustomizationColor.ONBOARDING_SCREEN_BACKGROUND, R.color.background_color)
.setColor(CustomizationColor.ONBOARDING_SCREEN_MESSAGE_LABELS_TEXT, R.color.message_color)
.setFont(CustomizationFont.ONBOARDING_SCREEN_MESSAGE_LABELS, R.font.roboto)
.setImage(CustomizationImage.ONBOARDING_SCREEN_ILLUMINATION, R.drawable.custom_image_illumination)
.setImage(CustomizationImage.ONBOARDING_SCREEN_ACCESSORIES, R.drawable.custom_image_accessories)
.setImage(CustomizationImage.ONBOARDING_SCREEN_CAMERA_LEVEL, R.drawable.custom_image_camera_level)
.build();
FaceSDK.Instance().getCustomization().setUiConfiguration(uiConfiguration);
var configuration: any = {}
var font = new Font()
font.size = 14
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_BACKGROUND] = 0xffd3d3d3
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_MESSAGE_LABELS_TEXT] = 0xff00ff00
configuration[Enum.CustomizationFont.ONBOARDING_SCREEN_MESSAGE_LABELS] = font
configuration[Enum.CustomizationImage.ONBOARDING_SCREEN_ACCESSORIES] = base64ImageAccessories
configuration[Enum.CustomizationImage.ONBOARDING_SCREEN_CAMERA_LEVEL] = base64ImageCameraLevel
configuration[Enum.CustomizationImage.ONBOARDING_SCREEN_ILLUMINATION] = base64ImageIllumination
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration = {};
var font = new Font();
font.size = 14;
configuration[CustomizationColor.ONBOARDING_SCREEN_BACKGROUND] = 0xffd3d3d3;
configuration[CustomizationColor.ONBOARDING_SCREEN_MESSAGE_LABELS_TEXT] = 0xff00ff00;
configuration[CustomizationFont.ONBOARDING_SCREEN_MESSAGE_LABELS] = font.toJson();
configuration[CustomizationImage.ONBOARDING_SCREEN_ACCESSORIES] = base64ImageAccessories;
configuration[CustomizationImage.ONBOARDING_SCREEN_CAMERA_LEVEL] = base64ImageCameraLevel;
configuration[CustomizationImage.ONBOARDING_SCREEN_ILLUMINATION] = base64ImageIllumination;
FaceSDK.setUiConfiguration(configuration);
var configuration = {}
var font = new Font()
font.size = 14
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_BACKGROUND] = 0xffd3d3d3
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_MESSAGE_LABELS_TEXT] = 0xff00ff00
configuration[Enum.CustomizationFont.ONBOARDING_SCREEN_MESSAGE_LABELS] = font
configuration[Enum.CustomizationImage.ONBOARDING_SCREEN_ACCESSORIES] = base64ImageAccessories
configuration[Enum.CustomizationImage.ONBOARDING_SCREEN_CAMERA_LEVEL] = base64ImageCameraLevel
configuration[Enum.CustomizationImage.ONBOARDING_SCREEN_ILLUMINATION] = base64ImageIllumination
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration: any = {}
var font = new Font()
font.size = 14
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_BACKGROUND] = 0xffd3d3d3
configuration[Enum.CustomizationColor.ONBOARDING_SCREEN_MESSAGE_LABELS_TEXT] = 0xff00ff00
configuration[Enum.CustomizationFont.ONBOARDING_SCREEN_MESSAGE_LABELS] = font
configuration[Enum.CustomizationImage.ONBOARDING_SCREEN_ACCESSORIES] = base64ImageAccessories
configuration[Enum.CustomizationImage.ONBOARDING_SCREEN_CAMERA_LEVEL] = base64ImageCameraLevel
configuration[Enum.CustomizationImage.ONBOARDING_SCREEN_ILLUMINATION] = base64ImageIllumination
FaceSDK.setUiConfiguration(configuration)
Session
The liveness assessment session is accompanied by an animation that demonstrates how to turn one's head. A blurred image of a person's face is displayed within a circle with animated and textual hints illustrated by colored target sectors around the circle:
Hint Label
For a hint label, you can customize text color, text font, and background color:
let uiConfiguration = UIConfiguration {
$0.setColor(.white, forItem: .CameraScreenFrontHintLabelText)
$0.setFont(.systemFont(ofSize: 20.0), forItem: .CameraScreenHintLabel)
$0.setColor(.black, forItem: .CameraScreenFrontHintLabelBackground)
}
FaceSDK.service.customization.configuration = uiConfiguration
RFSUIConfiguration *uiConfiguration = [RFSUIConfiguration configurationWithBuilderBlock:^(RFSUIConfigurationBuilder * _Nonnull builder) {
[builder setColor:[UIColor whiteColor] forItem:CameraScreenFrontHintLabelText];
[builder setFont:[UIFont systemFontOfSize:20.0] forItem:CameraScreenHintLabel];
[builder setColor:[UIColor blackColor] forItem:CameraScreenFrontHintLabelBackground];
}];
RFSFaceSDK.service.customization.configuration = uiConfiguration;
val uiConfiguration = UiConfiguration.Builder()
.setColor(CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_TEXT, R.color.black)
.setFont(CustomizationFont.CAMERA_SCREEN_HINT_LABEL, R.font.roboto)
.setColor(CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_BACKGROUND, R.drawable.notification_background_white)
.build()
FaceSDK.Instance().customization.setUiConfiguration(uiConfiguration)
UiConfiguration uiConfiguration = new UiConfiguration.Builder()
.setColor(CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_TEXT, R.color.black)
.setFont(CustomizationFont.CAMERA_SCREEN_HINT_LABEL, R.font.roboto)
.setColor(CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_BACKGROUND, R.drawable.notification_background_white)
.build();
FaceSDK.Instance().getCustomization().setUiConfiguration(uiConfiguration);
var configuration: any = {}
var font = new Font()
font.size = 20
configuration[Enum.CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_TEXT] = 0xffffffff
configuration[Enum.CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_BACKGROUND] = 0xff000000
configuration[Enum.CustomizationFont.CAMERA_SCREEN_HINT_LABEL] = font
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration = {};
var font = new Font();
font.size = 20;
configuration[CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_TEXT] = 0xffffffff;
configuration[CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_BACKGROUND] = 0xff000000;
configuration[CustomizationFont.CAMERA_SCREEN_HINT_LABEL] = font.toJson();
FaceSDK.setUiConfiguration(configuration);
var configuration = {}
var font = new Font()
font.size = 20
configuration[Enum.CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_TEXT] = 0xffffffff
configuration[Enum.CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_BACKGROUND] = 0xff000000
configuration[Enum.CustomizationFont.CAMERA_SCREEN_HINT_LABEL] = font
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration: any = {}
var font = new Font()
font.size = 20
configuration[Enum.CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_TEXT] = 0xffffffff
configuration[Enum.CustomizationColor.CAMERA_SCREEN_FRONT_HINT_LABEL_BACKGROUND] = 0xff000000
configuration[Enum.CustomizationFont.CAMERA_SCREEN_HINT_LABEL] = font
FaceSDK.setUiConfiguration(configuration)
Outline and Target Sector
The colors of the face circle outline and target sector can be customized:
let uiConfiguration = UIConfiguration {
$0.setColor(.green, forItem: .CameraScreenStrokeActive)
$0.setColor(.green, forItem: .CameraScreenStrokeNormal)
$0.setColor(.green.withAlphaComponent(0.35), forItem: .CameraScreenSectorTarget)
$0.setColor(.green, forItem: .CameraScreenSectorActive)
}
FaceSDK.service.customization.configuration = uiConfiguration
RFSUIConfiguration *uiConfiguration = [RFSUIConfiguration configurationWithBuilderBlock:^(RFSUIConfigurationBuilder * _Nonnull builder) {
[builder setColor:[UIColor greenColor] forItem:CameraScreenStrokeActive];
[builder setColor:[UIColor greenColor] forItem:CameraScreenStrokeNormal];
[builder setColor:[[UIColor greenColor] colorWithAlphaComponent:0.35] forItem:CameraScreenSectorTarget];
[builder setColor:[UIColor greenColor] forItem:CameraScreenSectorActive];
}];
RFSFaceSDK.service.customization.configuration = uiConfiguration;
val uiConfiguration = UiConfiguration.Builder()
.setColor(CustomizationColor.CAMERA_SCREEN_STROKE_ACTIVE, R.color.gray)
.setColor(CustomizationColor.CAMERA_SCREEN_STROKE_NORMAL, R.color.black)
.setColor(CustomizationColor.CAMERA_SCREEN_SECTOR_ACTIVE, R.color.red)
.setColor(CustomizationColor.CAMERA_SCREEN_SECTOR_TARGET, R.color.blue)
.build()
FaceSDK.Instance().customization.setUiConfiguration(uiConfiguration)
UiConfiguration uiConfiguration = new UiConfiguration.Builder()
.setColor(CustomizationColor.CAMERA_SCREEN_STROKE_ACTIVE, R.color.gray)
.setColor(CustomizationColor.CAMERA_SCREEN_STROKE_NORMAL, R.color.black)
.setColor(CustomizationColor.CAMERA_SCREEN_SECTOR_ACTIVE, R.color.red)
.setColor(CustomizationColor.CAMERA_SCREEN_SECTOR_TARGET, R.color.blue)
.build();
FaceSDK.Instance().getCustomization().setUiConfiguration(uiConfiguration);
var configuration: any = {}
configuration[Enum.CustomizationColor.CAMERA_SCREEN_STROKE_ACTIVE] = 0xff00ff00
configuration[Enum.CustomizationColor.CAMERA_SCREEN_STROKE_NORMAL] = 0xff00ff00
configuration[Enum.CustomizationColor.CAMERA_SCREEN_SECTOR_TARGET] = 0xff00ff00
configuration[Enum.CustomizationColor.CAMERA_SCREEN_SECTOR_ACTIVE] = 0xff00ff00
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration = {};
configuration[CustomizationColor.CAMERA_SCREEN_STROKE_ACTIVE] = 0xff00ff00;
configuration[CustomizationColor.CAMERA_SCREEN_STROKE_NORMAL] = 0xff00ff00;
configuration[CustomizationColor.CAMERA_SCREEN_SECTOR_TARGET] = 0xff00ff00;
configuration[CustomizationColor.CAMERA_SCREEN_SECTOR_ACTIVE] = 0xff00ff00;
FaceSDK.setUiConfiguration(configuration);
var configuration = {}
configuration[Enum.CustomizationColor.CAMERA_SCREEN_STROKE_ACTIVE] = 0xff00ff00
configuration[Enum.CustomizationColor.CAMERA_SCREEN_STROKE_NORMAL] = 0xff00ff00
configuration[Enum.CustomizationColor.CAMERA_SCREEN_SECTOR_TARGET] = 0xff00ff00
configuration[Enum.CustomizationColor.CAMERA_SCREEN_SECTOR_ACTIVE] = 0xff00ff00
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration: any = {}
configuration[Enum.CustomizationColor.CAMERA_SCREEN_STROKE_ACTIVE] = 0xff00ff00
configuration[Enum.CustomizationColor.CAMERA_SCREEN_STROKE_NORMAL] = 0xff00ff00
configuration[Enum.CustomizationColor.CAMERA_SCREEN_SECTOR_TARGET] = 0xff00ff00
configuration[Enum.CustomizationColor.CAMERA_SCREEN_SECTOR_ACTIVE] = 0xff00ff00
FaceSDK.setUiConfiguration(configuration)
Loading Results
During the loading of results, a processing spinner and a text label are displayed:
The customizable elements here are the following:
- Screen background: Color
- Processing spinner: Color
- Text label: Color, font size
let uiConfiguration = UIConfiguration {
$0.setColor(.lightGray, forItem: .ProcessingScreenBackground)
$0.setColor(.green, forItem: .ProcessingScreenProgress)
$0.setColor(.green, forItem: .ProcessingScreenTitleLabel)
$0.setFont(.systemFont(ofSize: 20.0), forItem: .ProcessingScreenLabel)
}
FaceSDK.service.customization.configuration = uiConfiguration
RFSUIConfiguration *uiConfiguration = [RFSUIConfiguration configurationWithBuilderBlock:^(RFSUIConfigurationBuilder * _Nonnull builder) {
[builder setColor:[UIColor lightGrayColor] forItem:ProcessingScreenBackground];
[builder setColor:[UIColor greenColor] forItem:ProcessingScreenProgress];
[builder setColor:[UIColor greenColor] forItem:ProcessingScreenTitleLabel];
[builder setFont:[UIFont systemFontOfSize:20.0] forItem:ProcessingScreenLabel];
}];
RFSFaceSDK.service.customization.configuration = uiConfiguration;
val uiConfiguration = UiConfiguration.Builder()
.setColor(CustomizationColor.PROCESSING_SCREEN_BACKGROUND, R.color.light_gray)
.setColor(CustomizationColor.PROCESSING_SCREEN_PROGRESS, R.color.title_color)
.setColor(CustomizationColor.PROCESSING_SCREEN_TITLE, R.color.message_color)
.setFont(CustomizationFont.PROCESSING_SCREEN, R.font.roboto)
.build()
FaceSDK.Instance().customization.setUiConfiguration(uiConfiguration)
UiConfiguration uiConfiguration = new UiConfiguration.Builder()
.setColor(CustomizationColor.PROCESSING_SCREEN_BACKGROUND, R.color.light_gray)
.setColor(CustomizationColor.PROCESSING_SCREEN_PROGRESS, R.color.title_color)
.setColor(CustomizationColor.PROCESSING_SCREEN_TITLE, R.color.message_color)
.setFont(CustomizationFont.PROCESSING_SCREEN, R.font.roboto)
.build();
FaceSDK.Instance().getCustomization().setUiConfiguration(uiConfiguration);
var configuration: any = {}
var font = new Font()
font.size = 20
configuration[Enum.CustomizationColor.PROCESSING_SCREEN_BACKGROUND] = 0xffd3d3d3
configuration[Enum.CustomizationColor.PROCESSING_SCREEN_PROGRESS] = 0xff00ff00
configuration[Enum.CustomizationColor.PROCESSING_SCREEN_TITLE] = 0xff00ff00
configuration[Enum.CustomizationFont.PROCESSING_SCREEN] = font
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration = {};
var font = new Font();
font.size = 20;
configuration[CustomizationColor.PROCESSING_SCREEN_BACKGROUND] = 0xffd3d3d3;
configuration[CustomizationColor.PROCESSING_SCREEN_PROGRESS] = 0xff00ff00;
configuration[CustomizationColor.PROCESSING_SCREEN_TITLE] = 0xff00ff00;
configuration[CustomizationFont.PROCESSING_SCREEN] = font.toJson();
FaceSDK.setUiConfiguration(configuration);
var configuration = {}
var font = new Font()
font.size = 20
configuration[Enum.CustomizationColor.PROCESSING_SCREEN_BACKGROUND] = 0xffd3d3d3
configuration[Enum.CustomizationColor.PROCESSING_SCREEN_PROGRESS] = 0xff00ff00
configuration[Enum.CustomizationColor.PROCESSING_SCREEN_TITLE] = 0xff00ff00
configuration[Enum.CustomizationFont.PROCESSING_SCREEN] = font
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration: any = {}
var font = new Font()
font.size = 20
configuration[Enum.CustomizationColor.PROCESSING_SCREEN_BACKGROUND] = 0xffd3d3d3
configuration[Enum.CustomizationColor.PROCESSING_SCREEN_PROGRESS] = 0xff00ff00
configuration[Enum.CustomizationColor.PROCESSING_SCREEN_TITLE] = 0xff00ff00
configuration[Enum.CustomizationFont.PROCESSING_SCREEN] = font
FaceSDK.setUiConfiguration(configuration)
Result Screen
Depending on the result, either a Success or Retry result screen will be displayed in the final step.
Success
For the Success screen, the image and a screen background color can be customized:
let uiConfiguration = UIConfiguration {
$0.setImage(UIImage(named: "success_image")!, forItem: .SuccessScreenImage)
$0.setColor(.lightGray, forItem: .SuccessScreenBackground)
}
FaceSDK.service.customization.configuration = uiConfiguration
RFSUIConfiguration *uiConfiguration = [RFSUIConfiguration configurationWithBuilderBlock:^(RFSUIConfigurationBuilder * _Nonnull builder) {
[builder setImage:[UIImage imageNamed:@"success_image"] forItem:SuccessScreenImage];
[builder setColor:[UIColor lightGrayColor] forItem:SuccessScreenBackground];
}];
RFSFaceSDK.service.customization.configuration = uiConfiguration;
val uiConfiguration = UiConfiguration.Builder()
.setImage(CustomizationImage.SUCCESS_SCREEN_IMAGE, R.drawable.done_button)
.setColor(CustomizationColor.SUCCESS_SCREEN_BACKGROUND, R.color.light_gray)
.build()
FaceSDK.Instance().customization.setUiConfiguration(uiConfiguration)
UiConfiguration uiConfiguration = new UiConfiguration.Builder()
.setImage(CustomizationImage.SUCCESS_SCREEN_IMAGE, R.drawable.done_button)
.setColor(CustomizationColor.SUCCESS_SCREEN_BACKGROUND, R.color.light_gray)
.build();
FaceSDK.Instance().getCustomization().setUiConfiguration(uiConfiguration);
var configuration: any = {}
configuration[Enum.CustomizationImage.SUCCESS_SCREEN_IMAGE] = base64ImageSuccess
configuration[Enum.CustomizationColor.SUCCESS_SCREEN_BACKGROUND] = 0xffd3d3d3
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration = {};
configuration[CustomizationImage.SUCCESS_SCREEN_IMAGE] = base64ImageSuccess;
configuration[CustomizationColor.SUCCESS_SCREEN_BACKGROUND] = 0xffd3d3d3;
FaceSDK.setUiConfiguration(configuration);
var configuration = {}
configuration[Enum.CustomizationImage.SUCCESS_SCREEN_IMAGE] = base64ImageSuccess
configuration[Enum.CustomizationColor.SUCCESS_SCREEN_BACKGROUND] = 0xffd3d3d3
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration: any = {}
configuration[Enum.CustomizationImage.SUCCESS_SCREEN_IMAGE] = base64ImageSuccess
configuration[Enum.CustomizationColor.SUCCESS_SCREEN_BACKGROUND] = 0xffd3d3d3
FaceSDK.setUiConfiguration(configuration)
Retry
The Retry screen provides guidelines on how to prepare for another attempt.
The reason why a person may not successfully pass the liveness assessment can be attributed to either the subject (for example, smiling, closed eyes, sunglasses, mask, headwear, etc.) or the environment (for example, problems with lighting, shadows, glare).
An image and a message label are provided for each of these cases. If the problem encompasses both cases, both images and messages will be displayed as shown in the screenshot below:
The customizable elements here are the following:
- Title text: Color, font size
- Subtitle text: Color, font size
- Subject retry image
- Environment retry image
- Hint text: Color, font size
- Screen background: Color
- Try again button: Text color, text font size, background color
let uiConfiguration = UIConfiguration {
$0.setColor(.blue, forItem: .RetryScreenTitleLabelText)
$0.setFont(.systemFont(ofSize: 22.0), forItem: .RetryScreenTitleLabel)
$0.setColor(.green, forItem: .RetryScreenSubtitleLabelText)
$0.setFont(.systemFont(ofSize: 18.0), forItem: .RetryScreenSubtitleLabel)
$0.setImage(UIImage(named: "custom_image_subject")!, forItem: .RetryScreenHintSubject)
$0.setImage(UIImage(named: "custom_image_environment")!, forItem: .RetryScreenHintEnvironment)
$0.setColor(.blue, forItem: .RetryScreenHintLabelsText)
$0.setFont(.systemFont(ofSize: 16.0), forItem: .RetryScreenHintLabels)
$0.setColor(.lightGray, forItem: .RetryScreenBackground)
$0.setColor(.white, forItem: .RetryScreenRetryButtonTitle)
$0.setFont(.systemFont(ofSize: 20.0), forItem: .RetryScreenRetryButton)
$0.setColor(.black, forItem: .RetryScreenRetryButtonBackground)
}
FaceSDK.service.customization.configuration = uiConfiguration
RFSUIConfiguration *uiConfiguration = [RFSUIConfiguration configurationWithBuilderBlock:^(RFSUIConfigurationBuilder * _Nonnull builder) {
[builder setColor:[UIColor blueColor] forItem:RetryScreenTitleLabelText];
[builder setFont:[UIFont boldSystemFontOfSize:22.0] forItem:RetryScreenTitleLabel];
[builder setColor:[UIColor greenColor] forItem:RetryScreenSubtitleLabelText];
[builder setFont:[UIFont systemFontOfSize:18.0] forItem:RetryScreenSubtitleLabel];
[builder setImage:[UIImage imageNamed:@"custom_image_subject"] forItem:RetryScreenHintSubject];
[builder setImage:[UIImage imageNamed:@"custom_image_environment"] forItem:RetryScreenHintEnvironment];
[builder setColor:[UIColor blueColor] forItem:RetryScreenHintLabelsText];
[builder setFont:[UIFont systemFontOfSize:16.0] forItem:RetryScreenHintLabels];
[builder setColor:[UIColor lightGrayColor] forItem:RetryScreenBackground];
[builder setColor:[UIColor whiteColor] forItem:RetryScreenRetryButtonTitle];
[builder setFont:[UIFont systemFontOfSize:20.0] forItem:RetryScreenRetryButtonTitle];
[builder setColor:[UIColor blackColor] forItem:RetryScreenRetryButtonBackground];
}];
RFSFaceSDK.service.customization.configuration = uiConfiguration;
val uiConfiguration = UiConfiguration.Builder()
.setColor(CustomizationColor.RETRY_SCREEN_TITLE_LABEL_TEXT, R.color.title_color)
.setFont(CustomizationFont.RETRY_SCREEN_TITLE_LABEL, R.font.roboto)
.setColor(CustomizationColor.RETRY_SCREEN_SUBTITLE_LABEL_TEXT, R.color.title_color)
.setFont(CustomizationFont.RETRY_SCREEN_SUBTITLE_LABEL, R.font.roboto)
.setImage(CustomizationImage.RETRY_SCREEN_HINT_ENVIRONMENT, R.drawable.ic_light)
.setImage(CustomizationImage.RETRY_SCREEN_HINT_SUBJECT, R.drawable.ic_emotions)
.setColor(CustomizationColor.RETRY_SCREEN_HINT_LABELS_TEXT, R.color.message_color)
.setFont(CustomizationFont.RETRY_SCREEN_HINT_LABELS, R.font.roboto)
.setColor(CustomizationColor.RETRY_SCREEN_BACKGROUND, R.color.background_color)
.setColor(CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_TITLE, R.color.image_color)
.setColor(CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_BACKGROUND, R.color.title_color)
.setFont(CustomizationFont.RETRY_SCREEN_RETRY_BUTTON, R.font.roboto)
.build()
FaceSDK.Instance().customization.setUiConfiguration(uiConfiguration)
UiConfiguration uiConfiguration = new UiConfiguration.Builder()
.setColor(CustomizationColor.RETRY_SCREEN_TITLE_LABEL_TEXT, R.color.title_color)
.setFont(CustomizationFont.RETRY_SCREEN_TITLE_LABEL, R.font.roboto)
.setColor(CustomizationColor.RETRY_SCREEN_SUBTITLE_LABEL_TEXT, R.color.title_color)
.setFont(CustomizationFont.RETRY_SCREEN_SUBTITLE_LABEL, R.font.roboto)
.setImage(CustomizationImage.RETRY_SCREEN_HINT_ENVIRONMENT, R.drawable.ic_light)
.setImage(CustomizationImage.RETRY_SCREEN_HINT_SUBJECT, R.drawable.ic_emotions)
.setColor(CustomizationColor.RETRY_SCREEN_HINT_LABELS_TEXT, R.color.message_color)
.setFont(CustomizationFont.RETRY_SCREEN_HINT_LABELS, R.font.roboto)
.setColor(CustomizationColor.RETRY_SCREEN_BACKGROUND, R.color.background_color)
.setColor(CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_TITLE, R.color.image_color)
.setColor(CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_BACKGROUND, R.color.title_color)
.setFont(CustomizationFont.RETRY_SCREEN_RETRY_BUTTON, R.font.roboto)
.build();
FaceSDK.Instance().getCustomization().setUiConfiguration(uiConfiguration);
var configuration: any = {}
var titlefont = new Font()
titlefont.size = 22
titlefont.style = Enum.FontStyle.BOLD
var hintFont = new Font()
hintFont.size = 16
var buttonFont = new Font()
buttonFont.size = 20
configuration[Enum.CustomizationColor.RETRY_SCREEN_TITLE_LABEL_TEXT] = 0xff00ff00
configuration[Enum.CustomizationFont.RETRY_SCREEN_TITLE_LABEL] = titlefont
configuration[Enum.CustomizationImage.RETRY_SCREEN_HINT_ENVIRONMENT] = base64ImageHintEnviroment
configuration[Enum.CustomizationImage.RETRY_SCREEN_HINT_SUBJECT] = base64ImageHintSubject
configuration[Enum.CustomizationColor.RETRY_SCREEN_HINT_LABELS_TEXT] = 0xff0000ff
configuration[Enum.CustomizationFont.RETRY_SCREEN_HINT_LABELS] = hintFont
configuration[Enum.CustomizationColor.RETRY_SCREEN_BACKGROUND] = 0xffd3d3d3
configuration[Enum.CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_TITLE] = 0xffffffff
configuration[Enum.CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_BACKGROUND] = 0xff000000
configuration[Enum.CustomizationFont.RETRY_SCREEN_RETRY_BUTTON] = buttonFont
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration = {};
var titlefont = new Font();
titlefont.size = 22;
titlefont.style = FontStyle.BOLD;
var hintFont = new Font();
hintFont.size = 16;
var buttonFont = new Font();
buttonFont.size = 20;
configuration[CustomizationColor.RETRY_SCREEN_TITLE_LABEL_TEXT] = 0xff00ff00;
configuration[CustomizationFont.RETRY_SCREEN_TITLE_LABEL] = titlefont.toJson();
configuration[CustomizationImage.RETRY_SCREEN_HINT_ENVIRONMENT] = base64ImageHintEnviroment;
configuration[CustomizationImage.RETRY_SCREEN_HINT_SUBJECT] = base64ImageHintSubject;
configuration[CustomizationColor.RETRY_SCREEN_HINT_LABELS_TEXT] = 0xff0000ff;
configuration[CustomizationFont.RETRY_SCREEN_HINT_LABELS] = hintFont.toJson();
configuration[CustomizationColor.RETRY_SCREEN_BACKGROUND] = 0xffd3d3d3;
configuration[CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_TITLE] = 0xffffffff;
configuration[CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_BACKGROUND] = 0xff000000;
configuration[CustomizationFont.RETRY_SCREEN_RETRY_BUTTON] = buttonFont.toJson();
FaceSDK.setUiConfiguration(configuration);
var configuration = {}
var titlefont = new Font()
titlefont.size = 22
titlefont.style = Enum.FontStyle.BOLD
var hintFont = new Font()
hintFont.size = 16
var buttonFont = new Font()
buttonFont.size = 20
configuration[Enum.CustomizationColor.RETRY_SCREEN_TITLE_LABEL_TEXT] = 0xff00ff00
configuration[Enum.CustomizationFont.RETRY_SCREEN_TITLE_LABEL] = titlefont
configuration[Enum.CustomizationImage.RETRY_SCREEN_HINT_ENVIRONMENT] = base64ImageHintEnviroment
configuration[Enum.CustomizationImage.RETRY_SCREEN_HINT_SUBJECT] = base64ImageHintSubject
configuration[Enum.CustomizationColor.RETRY_SCREEN_HINT_LABELS_TEXT] = 0xff0000ff
configuration[Enum.CustomizationFont.RETRY_SCREEN_HINT_LABELS] = hintFont
configuration[Enum.CustomizationColor.RETRY_SCREEN_BACKGROUND] = 0xffd3d3d3
configuration[Enum.CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_TITLE] = 0xffffffff
configuration[Enum.CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_BACKGROUND] = 0xff000000
configuration[Enum.CustomizationFont.RETRY_SCREEN_RETRY_BUTTON] = buttonFont
FaceSDK.setUiConfiguration(configuration, _ => { }, _ => { })
var configuration: any = {}
var titlefont = new Font()
titlefont.size = 22
titlefont.style = Enum.FontStyle.BOLD
var hintFont = new Font()
hintFont.size = 16
var buttonFont = new Font()
buttonFont.size = 20
configuration[Enum.CustomizationColor.RETRY_SCREEN_TITLE_LABEL_TEXT] = 0xff00ff00
configuration[Enum.CustomizationFont.RETRY_SCREEN_TITLE_LABEL] = titlefont
configuration[Enum.CustomizationImage.RETRY_SCREEN_HINT_ENVIRONMENT] = base64ImageHintEnviroment
configuration[Enum.CustomizationImage.RETRY_SCREEN_HINT_SUBJECT] = base64ImageHintSubject
configuration[Enum.CustomizationColor.RETRY_SCREEN_HINT_LABELS_TEXT] = 0xff0000ff
configuration[Enum.CustomizationFont.RETRY_SCREEN_HINT_LABELS] = hintFont
configuration[Enum.CustomizationColor.RETRY_SCREEN_BACKGROUND] = 0xffd3d3d3
configuration[Enum.CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_TITLE] = 0xffffffff
configuration[Enum.CustomizationColor.RETRY_SCREEN_RETRY_BUTTON_BACKGROUND] = 0xff000000
configuration[Enum.CustomizationFont.RETRY_SCREEN_RETRY_BUTTON] = buttonFont
FaceSDK.setUiConfiguration(configuration)
Process Management
You can control the ability to interrupt the process and choose whether to display the Start and Result screens.
Disable Interruptions
To remove the Close cross button, invoke:
let configuration = LivenessConfiguration {
$0.isCloseButtonEnabled = false
}
FaceSDK.service.startLiveness(
from: viewController,
animated: true,
configuration: configuration,
onLiveness: { response in
},
completion: nil
)
RFSLivenessConfiguration *configuration = [RFSLivenessConfiguration configurationWithBuilder:^(RFSLivenessConfigurationBuilder * _Nonnull builder) {
[builder setCloseButtonEnabled:NO];
}];
[RFSFaceSDK.service startLivenessFrom:self animated:YES
onLiveness:^(RFSLivenessResponse * _Nonnull repsonse) {
} completion:^{
}];
val configuration = LivenessConfiguration.Builder()
.setCloseButtonEnabled(false)
.build()
FaceSDK.Instance().startLiveness(
context, configuration) { livenessResponse: LivenessResponse? -> }
LivenessConfiguration configuration = new LivenessConfiguration.Builder()
.setCloseButtonEnabled(false)
.build();
FaceSDK.Instance().startLiveness(context, configuration, livenessResponse -> {});
FaceSDK.startLivenessWithConfig({
"closeButtonEnabled": false
}, _ => { }, _ => { })
FaceSDK.startLivenessWithConfig({
"closeButtonEnabled": false
});
FaceSDK.startLivenessWithConfig({
"closeButtonEnabled": false
}, _ => { }, _ => { })
FaceSDK.startLivenessWithConfig({
"closeButtonEnabled": false
})
Disable Start Screen
let configuration = LivenessConfiguration {
$0.stepSkippingMask = [.onboarding]
}
FaceSDK.service.startLiveness(
from: viewController,
animated: true,
configuration: configuration,
onLiveness: { response in
},
completion: nil
)
RFSLivenessConfiguration *configuration = [RFSLivenessConfiguration configurationWithBuilder:^(RFSLivenessConfigurationBuilder * _Nonnull builder) {
builder.stepSkippingMask = RFSLivenessStepSkipOnboarding;
}];
[RFSFaceSDK.service startLivenessFrom:viewController
animated:YES
configuration:configuration
onLiveness:^(RFSLivenessResponse * _Nonnull response) {
} completion:nil];
val configuration = LivenessConfiguration.Builder()
.setSkipStep(LivenessSkipStep.ONBOARDING_STEP)
.build()
FaceSDK.Instance().startLiveness(
context, configuration
) { livenessResponse: LivenessResponse? -> }
LivenessConfiguration configuration = new LivenessConfiguration.Builder()
.setSkipStep(LivenessSkipStep.ONBOARDING_STEP)
.build();
FaceSDK.Instance().startLiveness(context, configuration, livenessResponse -> {});
FaceSDK.startLivenessWithConfig({
"skipStep": [Enum.LivenessSkipStep.ONBOARDING_STEP]
}, _ => { }, _ => { })
FaceSDK.startLivenessWithConfig({
"skipStep": [LivenessSkipStep.ONBOARDING_STEP]
});
FaceSDK.startLivenessWithConfig({
"skipStep": [Enum.LivenessSkipStep.ONBOARDING_STEP]
}, _ => { }, _ => { })
FaceSDK.startLivenessWithConfig({
"skipStep": [Enum.LivenessSkipStep.ONBOARDING_STEP]
})
Disable Result Screen
let configuration = LivenessConfiguration {
$0.stepSkippingMask = [.success]
}
FaceSDK.service.startLiveness(
from: viewController,
animated: true,
configuration: configuration,
onLiveness: { response in
},
completion: nil
)
RFSLivenessConfiguration *configuration = [RFSLivenessConfiguration configurationWithBuilder:^(RFSLivenessConfigurationBuilder * _Nonnull builder) {
builder.stepSkippingMask = RFSLivenessStepSkipSuccess;
}];
[RFSFaceSDK.service startLivenessFrom:viewController
animated:YES
configuration:configuration
onLiveness:^(RFSLivenessResponse * _Nonnull response) {
} completion:nil];
val configuration = LivenessConfiguration.Builder()
.setSkipStep(LivenessSkipStep.SUCCESS_STEP)
.build()
FaceSDK.Instance().startLiveness(
context, configuration) { livenessResponse: LivenessResponse? -> }
LivenessConfiguration configuration = new LivenessConfiguration.Builder()
.setSkipStep(LivenessSkipStep.SUCCESS_STEP)
.build();
FaceSDK.Instance().startLiveness(context, configuration, livenessResponse -> {});
FaceSDK.startLivenessWithConfig({
"skipStep": [Enum.LivenessSkipStep.SUCCESS_STEP]
}, _ => { }, _ => { })
FaceSDK.startLivenessWithConfig({
"skipStep": [LivenessSkipStep.SUCCESS_STEP]
});
FaceSDK.startLivenessWithConfig({
"skipStep": [Enum.LivenessSkipStep.SUCCESS_STEP]
}, _ => { }, _ => { })
FaceSDK.startLivenessWithConfig({
"skipStep": [Enum.LivenessSkipStep.SUCCESS_STEP]
})
Disable Both Start and Result Screens
let configuration = LivenessConfiguration {
$0.stepSkippingMask = [.onboarding, .success]
}
FaceSDK.service.startLiveness(
from: viewController,
animated: true,
configuration: configuration,
onLiveness: { response in
},
completion: nil
)
RFSLivenessConfiguration *configuration = [RFSLivenessConfiguration configurationWithBuilder:^(RFSLivenessConfigurationBuilder * _Nonnull builder) {
builder.stepSkippingMask = RFSLivenessStepSkipOnboarding | RFSLivenessStepSkipSuccess;
}];
[RFSFaceSDK.service startLivenessFrom:viewController
animated:YES
configuration:configuration
onLiveness:^(RFSLivenessResponse * _Nonnull response) {
} completion:nil];
val configuration = LivenessConfiguration.Builder()
.setSkipStep(LivenessSkipStep.ONBOARDING_STEP, LivenessSkipStep.SUCCESS_STEP)
.build()
FaceSDK.Instance().startLiveness(
context, configuration) { livenessResponse: LivenessResponse? -> }
LivenessConfiguration configuration = new LivenessConfiguration.Builder()
.setSkipStep(LivenessSkipStep.ONBOARDING_STEP, LivenessSkipStep.SUCCESS_STEP)
.build();
FaceSDK.Instance().startLiveness(context, configuration, livenessResponse -> {});
FaceSDK.startLivenessWithConfig({
"skipStep": [Enum.LivenessSkipStep.ONBOARDING_STEP, Enum.LivenessSkipStep.SUCCESS_STEP]
}, _ => { }, _ => { })
FaceSDK.startLivenessWithConfig({
"skipStep": [LivenessSkipStep.ONBOARDING_STEP, LivenessSkipStep.SUCCESS_STEP]
});
FaceSDK.startLivenessWithConfig({
"skipStep": [Enum.LivenessSkipStep.ONBOARDING_STEP, Enum.LivenessSkipStep.SUCCESS_STEP]
}, _ => { }, _ => { })
FaceSDK.startLivenessWithConfig({
"skipStep": [Enum.LivenessSkipStep.ONBOARDING_STEP, Enum.LivenessSkipStep.SUCCESS_STEP]
})
Switch Camera Button: Face Detection
When using the Face Detection UI to capture an image, you can disable the Switch Camera button.
Note that this option is available only for the Face Detection UI. Due to security reasons, switching cameras in the Liveness Assessment module is not possible.
let configuration = FaceCaptureConfiguration {
$0.isCameraSwitchButtonEnabled = true
}
FaceSDK.service.presentFaceCaptureViewController(from: self, animated: true, configuration: configuration1) { response in
}
RFSFaceCaptureConfiguration *configuration = [RFSFaceCaptureConfiguration configurationWithBuilder:^(RFSFaceCaptureConfigurationBuilder * _Nonnull builder) {
builder.cameraSwitchButtonEnabled = YES;
}];
[RFSFaceSDK.service presentFaceCaptureViewControllerFrom:viewController
animated:YES
configuration:configuration
onCapture:^(RFSFaceCaptureResponse * _Nonnull response) {
} completion:^{
}];
val configuration = FaceCaptureConfiguration.Builder().setCameraSwitchEnabled(false).build()
FaceSDK.Instance().presentFaceCaptureActivity(
this@MainActivity, configuration
) { response: FaceCaptureResponse? -> }
FaceCaptureConfiguration configuration = new FaceCaptureConfiguration.Builder().setCameraSwitchEnabled(false).build();
FaceSDK.Instance().presentFaceCaptureActivity(MainActivity.this, configuration, (response) -> {
});
FaceSDK.presentFaceCaptureActivityWithConfig({
cameraSwitchEnabled: false
}, _ => { }, _ => { });
FaceSDK.presentFaceCaptureActivityWithConfig({
"cameraSwitchEnabled": false,
});
FaceSDK.presentFaceCaptureActivityWithConfig({
cameraSwitchEnabled: false
}, function (m) { }, function (e) { });
FaceSDK.presentFaceCaptureActivityWithConfig({
cameraSwitchEnabled: false
});