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