iOS Touch ID使用教程

支持系統(tǒng)和機(jī)型

iOS系統(tǒng)的指紋識(shí)別功能最低支持的機(jī)型為iPhone 5s,最低支持系統(tǒng)為iOS 8,雖然安裝iOS 7系統(tǒng)的5s機(jī)型可以使用系統(tǒng)提供的指紋解鎖功能,但由于API并未開(kāi)放,所以理論上第三方軟件不可使用。

依賴框架

在使用前我們需要導(dǎo)入 LocalAuthentication.framework 這個(gè)庫(kù)
然后引入頭文件

#import <LocalAuthentication/LocalAuthentication.h>

這個(gè)庫(kù)必須要Xcode6并且連接的是真機(jī),才不會(huì)提示找不到的錯(cuò)誤。 如果是模擬器會(huì)提示找不到這個(gè)庫(kù)。

OC代碼
//驗(yàn)證是否支持TouchID
- (void)judgeCanTouchId
{
    LAContext *context = [LAContext new];
    
    NSError *error;
    context.localizedFallbackTitle = @"輸入密碼";
    
    if ([context canEvaluatePolicy:(LAPolicyDeviceOwnerAuthenticationWithBiometrics) error:&error])
    {
        NSLog(@"支持使用");
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:NSLocalizedString(@"通過(guò)驗(yàn)證指紋解鎖",nil) reply:^(BOOL success, NSError * _Nullable error) {
            if (success) {
                NSLog(@"驗(yàn)證成功");
            }
            else
            {
                /*
                 // 用戶未提供有效證書,(3次機(jī)會(huì)失敗 --身份驗(yàn)證失敗)。
                 LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,
                 
                 // 認(rèn)證被取消,(用戶點(diǎn)擊取消按鈕)。
                 LAErrorUserCancel           = kLAErrorUserCancel,
                 
                 // 認(rèn)證被取消,用戶點(diǎn)擊回退按鈕(輸入密碼)。
                 LAErrorUserFallback         = kLAErrorUserFallback,
                 
                 // 身份驗(yàn)證被系統(tǒng)取消,(比如另一個(gè)應(yīng)用程序去前臺(tái),切換到其他 APP)。
                 LAErrorSystemCancel         = kLAErrorSystemCancel,
                 
                 // 身份驗(yàn)證無(wú)法啟動(dòng),因?yàn)槊艽a在設(shè)備上沒(méi)有設(shè)置。
                 LAErrorPasscodeNotSet       = kLAErrorPasscodeNotSet,
                 
                 // 身份驗(yàn)證無(wú)法啟動(dòng),因?yàn)橛|摸ID在設(shè)備上不可用。
                 LAErrorTouchIDNotAvailable  = kLAErrorTouchIDNotAvailable,
                 
                 // 身份驗(yàn)證無(wú)法啟動(dòng),因?yàn)闆](méi)有登記的手指觸摸ID。 沒(méi)有設(shè)置指紋密碼時(shí)。
                 LAErrorTouchIDNotEnrolled   = kLAErrorTouchIDNotEnrolled,
                 **/
                
                if (error.code == kLAErrorUserFallback) {
                    NSLog(@"用戶選擇了另一種方式");
                }
                else if (error.code == kLAErrorUserCancel)
                {
                    NSLog(@"用戶取消");
                }
                else if (error.code == kLAErrorSystemCancel)
                {
                    NSLog(@"切換前臺(tái)被取消");
                }
                else if (error.code == kLAErrorPasscodeNotSet)
                {
                    NSLog(@"身份驗(yàn)證沒(méi)有設(shè)置");
                }
                else
                {
                    NSLog(@"驗(yàn)證失敗");
                }
            }
        }];
    }
    else
    {
        NSLog(@"不支持使用");
    }
}
IMG_0858.PNG
總結(jié)

Touch ID驗(yàn)證中我們并不能拿到標(biāo)識(shí),只有一個(gè)YES or NO的結(jié)果

?著作權(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)容

  • 上午我參加業(yè)務(wù)會(huì)議,有十幾個(gè)部門的小頭頭參會(huì)。領(lǐng)導(dǎo)一開(kāi)始提示性的強(qiáng)調(diào)了幾項(xiàng)工作,突然提出要評(píng)選先進(jìn)。 “參加評(píng)選的...
    米班閱讀 361評(píng)論 0 2
  • --- 這個(gè)名字毫無(wú)來(lái)由 就這么竄入腦海 我怎么知道 它和你 有些什么聯(lián)系 若干年前 我的眼還能看清 我的耳也能聽(tīng)...
    木月?lián)u江閱讀 405評(píng)論 0 2
  • 如同一具行尸走肉 拖著虛空的身體 走向另一個(gè)虛空 在無(wú)盡的深淵,下沉 我嗅到了腐尸的氣息 卻無(wú)力掙脫 在黑暗的邊緣...
    古谷2017閱讀 216評(píng)論 0 3

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