iOS指紋識(shí)別功能實(shí)踐

iOS8 蘋果開放了指紋驗(yàn)證功能,支持5s以上的機(jī)型。

1.導(dǎo)入框架

#import <LocalAuthentication/LocalAuthentication.h>

2.定義幾種可能性的block回調(diào)

typedef void (^SuccessVerifyBlock) (BOOL success);//驗(yàn)證成功

typedef void (^ErrorBlock) (NSError *error);//驗(yàn)證失敗

typedef void (^InputPwdBlock)(NSError *error);//驗(yàn)證失敗輸入密碼

typedef void (^DeviceNoSupportBlock)();//設(shè)備不支持

3.編碼

+ (void)verifyFingerPrintWithSuccessBlock:(SuccessVerifyBlock)block WithErrorBlock:(ErrorBlock)errorBlock WithInputPwdBlock:(InputPwdBlock)inputPwdBlock WithDeviceNoSupportBlock:(DeviceNoSupportBlock)deviceNoSupportBlock {

    LAContext *ctx = [[LAContext alloc]init];

    // 判斷設(shè)備是否支持指紋識(shí)別

    if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) {

        // 輸入指紋 - 回調(diào)是異步的

        [ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:DetailDescription reply:^(BOOL success, NSError *error) {

            // 1. 如果輸入成功

            if (success) {

                //成功

                dispatch_async(dispatch_get_main_queue(), ^{

                    //驗(yàn)證成功回調(diào)

                    block(success);

                    

                });

                

            } else {

                //指紋驗(yàn)證失敗會(huì)彈出框,是否使用密碼驗(yàn)證。

                // 判斷錯(cuò)誤類型是否是主動(dòng)自行輸入密碼

                

                if (error.code == LAErrorUserFallback) {

                    dispatch_async(dispatch_get_main_queue(), ^{

                        //密碼驗(yàn)證方法

                        inputPwdBlock(error);

                        //跳轉(zhuǎn)到登錄頁(yè)面登錄

                        

                    });

                    

                } else {

                    dispatch_async(dispatch_get_main_queue(), ^{

                        //指紋驗(yàn)證沒有通過,沒有點(diǎn)擊用密碼驗(yàn)證彈出框

                        errorBlock(error);

                        

                    });

                    

                }

                

            }

            

        }];

        

    } else {

        //設(shè)備不支持指紋識(shí)別

        deviceNoSupportBlock();

    }

    

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iPhone5S開始,推出指紋識(shí)別 iOS8.0之后蘋果允許第三方 App 使用 Touch ID進(jìn)行身份驗(yàn)證 指...
    無(wú)灃閱讀 526評(píng)論 0 0
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,147評(píng)論 4 61
  • 拍賣博弈是指,在無(wú)法掌握博弈者具體信息的時(shí)候,要想盡辦法讓他們互相廝殺,最后我方獲得最大的利益。
    李向姿閱讀 260評(píng)論 0 0
  • 如何避免火藥包爆炸?去掉引信(導(dǎo)火索)嗎?不,正確的做法是去掉里面的火藥! 夫妻之間的吵架,如同火藥包一樣,吵架的...
    畫屏閑展閱讀 180評(píng)論 2 2

友情鏈接更多精彩內(nèi)容