iOS 지문 인식 - 바이오메트릭 인식
간단한 소개
4
4
코드 준비
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self inputUserinfo];
}
///
- (void)inputUserinfo {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@" " message:@" " delegate:self cancelButtonTitle:@" " otherButtonTitles:@" ", nil];
alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
[alertView show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"%zd", buttonIndex);
if (buttonIndex == 0) {
return;
}
UITextField *usernameText = [alertView textFieldAtIndex:0];
UITextField *pwdText = [alertView textFieldAtIndex:1];
if ([usernameText.text isEqualToString:@"zhang"] && [pwdText.text isEqualToString:@"123"]) {
[self purchase];
} else {
[[[UIAlertView alloc] initWithTitle:@" " message:@" " delegate:nil cancelButtonTitle:@" " otherButtonTitles:nil, nil] show];
}
}
///
- (void)purchase {
NSLog(@" ");
}
지문 인식
헤더 파일
#import
지문 인식 지원 여부 판단
//
if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) {
[self inputUserinfo];
return;
}
//
LAContext *ctx = [[LAContext alloc] init];
if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) {
NSLog(@" ");
//
[ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@" " reply:^(BOOL success, NSError *error) {
NSLog(@"%d %@ %@", success, error, [NSThread currentThread]);
if (success) {
[self purchase];
} else if (error.code == LAErrorUserFallback) {
dispatch_async(dispatch_get_main_queue(), ^{
[self inputUserinfo];
});
}
}];
NSLog(@"come here");
} else {
[self inputUserinfo];
}
오류 번호
잘못
묘사
LAErrorAuthenticationFailed
지문이 인식되지 않음
LAErrorUserCancel
사용자가 "취소"단추를 눌렀다
LAErrorUserFallback
사용자가 취소하고 "비밀번호 입력"단추를 눌렀다
LAErrorSystemCancel
시스템이 취소되었습니다. 예를 들어 다른 프로그램이 활성화되었습니다.
LAErrorPasscodeNotSet
디바이스에 암호가 설정되어 있지 않으므로 확인을 시작할 수 없습니다.
LAErrorTouchIDNotAvailable
장치에 터치 ID가 없으므로 인증을 시작할 수 없습니다.
LAErrorTouchIDNotEnrolled
지문을 입력하지 않았기 때문에 검증을 시작할 수 없습니다.
UIAlertController 사용
- (void)inputUserInfo {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@" " message:@" " preferredStyle:UIAlertControllerStyleAlert];
[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = @" ";
}];
[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = @" ";
textField.secureTextEntry = YES;
}];
[alert addAction:[UIAlertAction actionWithTitle:@" " style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
[self dismissViewControllerAnimated:YES completion:nil];
}]];
[alert addAction:[UIAlertAction actionWithTitle:@" " style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
NSString *username = [alert.textFields[0] text];
NSString *pwd = [alert.textFields[1] text];
if ([username isEqualToString:@"zhang"] && [pwd isEqualToString:@"1"]) {
[self purchase];
} else {
[self showErrorMsg];
}
}]];
[self presentViewController:alert animated:YES completion:nil];
}
- (void)showErrorMsg {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@" " message:@" " preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@" " style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
[self dismissViewControllerAnimated:YES completion:nil];
}]];
[self presentViewController:alert animated:YES completion:nil];
}
- (void)purchase {
NSLog(@" ");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.