好久沒過來讥蟆,小知識知識,預(yù)祝大家清明節(jié)快樂
iPhone X 已經(jīng)出來一段時間了纺阔,雖然面部識別很高大上瘸彤,但是小白我還是買不起啊,一直沒有體會到那種裝B的感覺笛钝,我看到支付寶质况,微信都用系統(tǒng)自帶的Face ID進行支付認證,于是我就研究下了(借朋友的手機玻靡、可憐)
其實很簡單基本和Tounch ID一個樣子结榄,不說沒用的啦 直接上代碼
記住要添加頭文件
#import <LocalAuthentication/LocalAuthentication.h>
??? if (@available(iOS 8.0, *)) {
??????? LAContext *context = [[LAContext alloc] init];
???????
??????? NSString *typeString = @"";
??????? if (@available(iOS 11.0, *)) {
??????????? if (context.biometryType == LABiometryTypeTouchID) {
??????????????? typeString = @"指紋登錄";
??????????? }else if (context.biometryType == LABiometryTypeFaceID){
??????????????? typeString = @"Face ID登錄";
??????????? }
??????? } else {
??????? }
???????
??????? [self loginType:typeString withContent:context];
??? }else {?
??????? NSLog(@"你的設(shè)備不支持指紋識別");?????
??? }
- (void)loginType:(NSString *)type withContent:(LAContext *)context{
??? 檢驗是否系統(tǒng)支持FaceID
? ? if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
?????? 驗證FaceID是否通過
? ? ? ? [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:type reply:^(BOOL success,? ? ? ? ? ? ? ? NSError * _Nullable error) {
? ? ? ? ? ? if (success) {
? ? ? ? ? ? ? ? UIAlertController *con = [UIAlertController alertControllerWithTitle:@"提示" message:type preferredStyle:(UIAlertControllerStyleAlert)];
? ? ? ? ? ? ? ? UIAlertAction *alt1 = [UIAlertAction actionWithTitle:@"確定" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * _Nonnull action) {
? ? ? ? ? ? ? ? }];
? ? ? ? ? ? ? ? [con addAction:alt1];
? ? ? ? ? ? ? ? [self presentViewController:con animated:YES completion:nil];
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? UIAlertController *con = [UIAlertController alertControllerWithTitle:@"提示" message:type preferredStyle:(UIAlertControllerStyleAlert)];
? ? ? ? ? ? ? ? UIAlertAction *alt1 = [UIAlertAction actionWithTitle:@"失敗" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * _Nonnull action) {
? ? ? ? ? ? ? ? }];
? ? ? ? ? ? ? ? [con addAction:alt1];
? ? ? ? ? ? ? ? [self presentViewController:con animated:YES completion:nil];
? ? ? ? ? ? }
? ? ? ? }];
? ? }
}