從iPhone5s開始,蘋果手機(jī)和ipad等設(shè)備開始支持指紋識別傳感器,在某些場合可以使用到,以簡化操作。
1、首先要導(dǎo)入頭文件:
import <LocalAuthentication/LocalAuthentication.h>
2、系統(tǒng)的版本不能小于8.0:
// 檢測設(shè)備的版本
if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) {
// 一般跳轉(zhuǎn)到手動(dòng)支付界面
return;
}
3、創(chuàng)建本地授權(quán)上下文對象:
LAContext *ctx = [[LAContext alloc] init];
4、檢查硬件:
// 檢測指紋識別傳感器是否正常(是否存在)
if (![ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) {
// 一般跳轉(zhuǎn)到手動(dòng)支付界面
return;
}
5、檢測用戶指紋操作(指紋輸入或者點(diǎn)擊取消):
// 執(zhí)行指紋操作(注意整個(gè)是在異步操作的)
[ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@“這里是描述” reply:^(BOOL success, NSError *error) {
if (success) {
// 執(zhí)行授權(quán)后的操作
} else {
// 用戶點(diǎn)擊了手動(dòng)輸入的按鈕
if (error.code == LAErrorUserFallback) {
// 跳轉(zhuǎn)到手動(dòng)授權(quán)界面
}
}
}];
注:
1、指紋識別的整個(gè)操作是在異步執(zhí)行的,如果需要更新UI,需要在主線程進(jìn)行回調(diào)。
2、指紋識別是一個(gè)獨(dú)立的操作,有自己的消息框以配合指紋傳感器的使用,此外,還必須存在手動(dòng)輸入的模塊,因?yàn)橹讣y識別不穩(wěn)定,不能作為用戶的唯一輸入。