Touch ID 使用

介紹

Touch ID是iPhone5S后加入的一項(xiàng)新的功能师郑,也就是大家熟知的指紋識(shí)別技術(shù)胖腾。iOS8后蘋(píng)果開(kāi)放了Touch ID的API給開(kāi)發(fā)者参淹。

Face ID 是iPhone X 專(zhuān)屬功能宁炫,也是iOS 11中的新功能土砂,用于取代Touch ID州既,他們的作用都是為了讓我們不在需要每次都使用密碼進(jìn)行身份驗(yàn)證,只需要指紋或者人臉就可完成相關(guān)認(rèn)證萝映。

Touch ID 和 Face ID 都屬于生物特征認(rèn)證吴叶,下文所提到的認(rèn)證都包括這兩種認(rèn)證。

使用

使用Touch ID 和 Face ID 我們需要導(dǎo)入LocalAuthentication.framework框架序臂,該框架只包含LAContext一個(gè)類(lèi)蚌卤,完成認(rèn)證的所需接口就包含在這個(gè)類(lèi)里面,下面就是這個(gè)類(lèi)的主要方法和屬性奥秆。

判斷認(rèn)證是否可用

- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)error;

該方法會(huì)返回認(rèn)證方式是否可用逊彭,policy表示認(rèn)證策略,該枚舉有兩個(gè)可選值构订,

1侮叮、LAPolicyDeviceOwnerAuthenticationWithBiometrics? ? 使用生物識(shí)別認(rèn)證設(shè)備持有者身份

2、LAPolicyDeviceOwnerAuthentication??使用生物識(shí)別或者密碼去認(rèn)證設(shè)備持有者身份

兩者的區(qū)別是 LAPolicyDeviceOwnerAuthentication 是iOS 9才開(kāi)始有效的悼瘾,在用戶(hù)認(rèn)證失敗后會(huì)彈出密碼輸入框囊榜。點(diǎn)擊fallback按鈕將跳到密碼輸入界面审胸,而不是執(zhí)行回調(diào)block。

開(kāi)始認(rèn)證

- (void)evaluatePolicy:(LAPolicy)policy localizedReason:(NSString *)localizedReason reply:(void(^)(BOOL success, NSError * __nullable error))reply;

localizedReason 認(rèn)證原因卸勺,會(huì)在彈出框上顯示砂沛,reply認(rèn)證結(jié)果回調(diào)block,error的錯(cuò)誤原因有一下幾個(gè):

typedef NS_ENUM(NSInteger, LAError) {

//用戶(hù)驗(yàn)證沒(méi)有通過(guò)孔庭,比如提供了錯(cuò)誤的指紋或人面

LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,

// 用戶(hù)取消了認(rèn)證

LAErrorUserCancel = kLAErrorUserCancel,

//用戶(hù)不想認(rèn)證尺上,想進(jìn)行其他操作材蛛,比如輸入密碼等

LAErrorUserFallback = kLAErrorUserFallback,

// 系統(tǒng)終止了驗(yàn)證圆到,比如app進(jìn)入后臺(tái)

LAErrorSystemCancel = kLAErrorSystemCancel,

// 用戶(hù)沒(méi)有設(shè)定密碼

LAErrorPasscodeNotSet = kLAErrorPasscodeNotSet,

// 設(shè)備不支持Touch ID,為了適配Face ID iOS 11之后廢除

LAErrorTouchIDNotAvailable = kLAErrorTouchIDNotAvailable NS_ENUM_DEPRECATED(10_10,10_13,8_0,11_0,"use LAErrorBiometryNotAvailable") = kLAErrorTouchIDNotAvailable,

// 設(shè)備沒(méi)有進(jìn)行Touch ID 指紋注冊(cè)卑吭,為了適配Face ID iOS 11之后廢除

LAErrorTouchIDNotEnrolled = kLAErrorTouchIDNotEnrolled NS_ENUM_DEPRECATED(10_10,10_13,8_0,11_0,"use LAErrorBiometryNotEnrolled"),

//由于失敗太多次芽淡,并且認(rèn)證被鎖定,要求用戶(hù)輸入密碼來(lái)解鎖豆赏。使用LAPolicyDeviceOwnerAuthenticationWithBiometrics策略多次失敗后挣菲,不會(huì)自動(dòng)彈出密碼輸入界面,并且調(diào)用驗(yàn)證方法會(huì)直接返回錯(cuò)誤掷邦,我們需要轉(zhuǎn)換驗(yàn)證策略為L(zhǎng)APolicyDeviceOwnerAuthentication白胀,再調(diào)用認(rèn)證方法,這時(shí)系統(tǒng)會(huì)彈出密碼輸入框讓我們解鎖抚岗,為了適配Face ID iOS 11之后廢除

LAErrorTouchIDLockout = kLAErrorTouchIDLockout NS_ENUM_DEPRECATED(10_11,10_13,9_0,11_0,"use LAErrorBiometryLockout"),

//被app取消或杠,比如,在認(rèn)證過(guò)程中調(diào)用了invalidate方法

LAErrorAppCancel? = kLAErrorAppCancel NS_ENUM_AVAILABLE(10_11,9_0),

//LAContext對(duì)象已經(jīng)失效了宣蔚,比如向抢,在認(rèn)證前調(diào)用了invalidate方法

LAErrorInvalidContext = kLAErrorInvalidContext NS_ENUM_AVAILABLE(10_11,9_0),

//生物識(shí)別不可用胚委,iOS 11之后可用

LAErrorBiometryNotAvailable = kLAErrorBiometryNotAvailable NS_ENUM_AVAILABLE(10_13,11_0) __WATCHOS_AVAILABLE(4.0) __TVOS_AVAILABLE(11.0),

//未設(shè)置人臉或指紋挟鸠,iOS 11之后可用

LAErrorBiometryNotEnrolled = kLAErrorBiometryNotEnrolled NS_ENUM_AVAILABLE(10_13,11_0) __WATCHOS_AVAILABLE(4.0) __TVOS_AVAILABLE(11.0),

//由于失敗太多次,并且認(rèn)證被鎖定亩冬,要求用戶(hù)輸入密碼來(lái)解鎖艘希。使用LAPolicyDeviceOwnerAuthenticationWithBiometrics策略多次失敗后,不會(huì)自動(dòng)彈出密碼輸入界面硅急,并且調(diào)用驗(yàn)證方法會(huì)直接返回錯(cuò)誤覆享,我們需要轉(zhuǎn)換驗(yàn)證策略為L(zhǎng)APolicyDeviceOwnerAuthentication,再調(diào)用認(rèn)證方法铜秆,這時(shí)系統(tǒng)會(huì)彈出密碼輸入框讓我們解鎖

LAErrorBiometryLockout = kLAErrorBiometryLockout NS_ENUM_AVAILABLE(10_13,11_0) __WATCHOS_AVAILABLE(4.0) __TVOS_AVAILABLE(11.0),

//被禁止彈出識(shí)別UI淹真,無(wú)法驗(yàn)證,比如:LAContext的interactionNotAllowed屬性被設(shè)為YES

LAErrorNotInteractive = kLAErrorNotInteractive API_AVAILABLE(macos(10.10), ios(8.0), watchos(3.0), tvos(10.0))

} NS_ENUM_AVAILABLE(10_10, 8_0);

使當(dāng)前認(rèn)證上下文對(duì)象無(wú)效

- (void)invalidate连茧;

touchIDAuthenticationAllowableReuseDuration 該屬性可以設(shè)置一個(gè)時(shí)間間隔核蘸,在時(shí)間間隔內(nèi)是調(diào)用認(rèn)證方法時(shí)可以不需要認(rèn)證巍糯,直接通過(guò)。默認(rèn)是0秒客扎,最長(zhǎng)可以設(shè)置5分鐘祟峦。

localizedFallbackTitle ?回退按鈕標(biāo)題,允許用戶(hù)其他操作徙鱼,設(shè)為空字符將被隱藏

localizedCancelTitle ? ? ??取消按鈕標(biāo)題

maxBiometryFailures ? 最大認(rèn)證失敗次數(shù)

evalueatedPolicyDomainState 這個(gè)屬性可以檢測(cè)你的指紋數(shù)據(jù)庫(kù)的變化,增加或者刪除指紋這個(gè)屬性會(huì)做出相應(yīng)的反應(yīng),只有驗(yàn)證成功之后才會(huì)別賦值宅楞,注意:這個(gè)值得變化只能說(shuō)明指紋庫(kù)發(fā)生了變化,并不能知道發(fā)生了什么變化袱吆。

localizedReason ??認(rèn)證原因厌衙,會(huì)在彈出框上顯示

interactionNotAllowed ?設(shè)為Yes將不會(huì)彈出驗(yàn)證UI,直接回調(diào)錯(cuò)誤

biometryType? 認(rèn)證類(lèi)型绞绒,該屬性只有在canEvaluatePolicy方法返回成功后婶希,才會(huì)被賦值,該屬性是有三個(gè)可選值:

LABiometryNone無(wú)生物驗(yàn)證方式

LABiometryTypeTouchID touchid認(rèn)證

LABiometryTypeFaceID ?Face ID認(rèn)證蓬衡,該屬性是iOS 11新添加

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末喻杈,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子狰晚,更是在濱河造成了極大的恐慌筒饰,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壁晒,死亡現(xiàn)場(chǎng)離奇詭異瓷们,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)讨衣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)换棚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人反镇,你說(shuō)我怎么就攤上這事固蚤。” “怎么了歹茶?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵夕玩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我惊豺,道長(zhǎng)燎孟,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任尸昧,我火速辦了婚禮揩页,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烹俗。我一直安慰自己爆侣,他們只是感情好萍程,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著兔仰,像睡著了一般茫负。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乎赴,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天忍法,我揣著相機(jī)與錄音,去河邊找鬼榕吼。 笑死饿序,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的友题。 我是一名探鬼主播嗤堰,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼戴质,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼度宦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起告匠,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤戈抄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后后专,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體划鸽,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年戚哎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了裸诽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡型凳,死狀恐怖丈冬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情甘畅,我是刑警寧澤埂蕊,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站疏唾,受9級(jí)特大地震影響蓄氧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜槐脏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一喉童、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧顿天,春花似錦堂氯、人聲如沸重抖。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)钟沛。三九已至,卻和暖如春局扶,著一層夾襖步出監(jiān)牢的瞬間恨统,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工三妈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留畜埋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓畴蒲,卻偏偏與公主長(zhǎng)得像悠鞍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子模燥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 前言:如果圖片看不了請(qǐng)移步:簡(jiǎn)書(shū) Touch ID簡(jiǎn)介 Touch ID指紋識(shí)別作為iPhone 5s上的“殺手級(jí)...
    珍此良辰閱讀 2,978評(píng)論 3 6
  • 支持系統(tǒng)和機(jī)型 iOS系統(tǒng)的指紋識(shí)別功能最低支持的機(jī)型為iPhone 5s咖祭,最低支持系統(tǒng)為iOS 8,雖然安裝iO...
    MMD_閱讀 428評(píng)論 0 0
  • 簡(jiǎn)單介紹 支持系統(tǒng)和機(jī)型 iOS系統(tǒng)的指紋識(shí)別功能最低支持的機(jī)型為iPhone 5s蔫骂,最低支持系統(tǒng)為iOS 8么翰,雖...
    93a13ee543af閱讀 1,072評(píng)論 0 4
  • 由于最近要使用指紋解鎖app,就暫且了解了一下辽旋,注釋非常詳細(xì)浩嫌。需要注意的是在successBlock里面代碼是后臺(tái)...
    DSA碼儂閱讀 351評(píng)論 0 2
  • 01 人生就像一杯茶码耐,不會(huì)苦一輩子,但會(huì)苦一陣子溶其。 人的一生骚腥,很少有不吃苦的。 苦吃的越早握联,越會(huì)更快的變成人生豐富...
    江月的書(shū)妝臺(tái)閱讀 604評(píng)論 10 7