iOS 10 的那些坑之指紋解鎖

背景

使用指紋解鎖幼驶,蘋果有一個(gè)小例子凄敢,大體的流程是這樣的:

//代碼塊 1
func attemptLoginWithTouchID() {
        let context = LAContext();
        var authError: NSError? = nil;
        if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &authError) {
            context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "使用指紋登錄", reply: { (success, evaluateError) in
                if success {
                    // case 1: 指紋鑒定成功
                }
                else {
                    //case 2:指紋鑒定失敗
                }
            })
        }
        else {            
            //case 3: 目前無法進(jìn)行指紋識(shí)別
        }
    }

進(jìn)行evaluatePolicy時(shí),如果連續(xù)三次識(shí)別不對(duì)庸追,在 case 2 處失敗一次霍骄,如果再連續(xù)識(shí)別不對(duì)兩次,Touch ID 功能就會(huì)被鎖定锚国,需要輸入設(shè)備密碼解鎖腕巡。

Apple 在 iOS 9 SDK 中玄坦,對(duì)于失敗的情況血筑,加了一條 LAErrorTouchIDLockout绘沉,然而如果在 evaluatePolicy 的時(shí)候 Touch ID 被鎖,并不會(huì)在 case 2處失敗豺总,系統(tǒng)會(huì)自動(dòng)彈出密碼框车伞,讓用戶解鎖。這個(gè)過程對(duì)開發(fā)者是透明的喻喳。

但是對(duì)于 iOS 10另玖,情況就不是這樣了。主要有兩點(diǎn)區(qū)別:

  • 如果 Touch ID 已經(jīng)被鎖定表伦,那么執(zhí)行canEvaluatePolicy的時(shí)候谦去,會(huì)返回 false,但是在 iOS 9 及以前的系統(tǒng)上會(huì)返回 true蹦哼。
  • 如果在執(zhí)行evaluatePolicy的過程中鳄哭,Touch ID 被鎖定,系統(tǒng)不會(huì)自動(dòng)調(diào)起密碼框解除鎖定纲熏,但是在 iOS 9 及以前的系統(tǒng)上會(huì)這么干妆丘。

那么現(xiàn)在就很尷尬了:如果在進(jìn)行指紋解鎖的時(shí)候,Touch ID 已經(jīng)被鎖定局劲,那么就會(huì)直接跳到 case 3 勺拣,提示目前無法進(jìn)行指紋識(shí)別。那用戶就會(huì)說鱼填,我的指紋識(shí)別明明是好的药有,這個(gè) App 太 SB !

解決方案

在進(jìn)入 case 2case 3 的錯(cuò)誤狀態(tài)后,進(jìn)行判斷苹丸。如果錯(cuò)誤碼是 LAErrorTouchIDLockout塑猖,可以主動(dòng)調(diào)起密碼框解除 Touch ID 的鎖定。以下是解除鎖定的代碼:

//代碼塊 2
func unlockTouchID() {
        let context = LAContext();
        var authError: NSError? = nil;
        if #available(iOS 9.0, *) {
            if context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &authError) {
                context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: "需要您的密碼谈跛,才能啟用 Touch ID", reply: { (success, evaluateError) in
                    if success {
                        // Touch ID 解鎖成功羊苟,重新嘗試指紋登錄
                    }
                })
            }
        } else {
            // Fallback on earlier versions, do nothing...
        }
    }

如有錯(cuò)誤請(qǐng)指正。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末感憾,一起剝皮案震驚了整個(gè)濱河市蜡励,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阻桅,老刑警劉巖凉倚,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嫂沉,居然都是意外死亡稽寒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門趟章,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杏糙,“玉大人慎王,你說我怎么就攤上這事『晔蹋” “怎么了赖淤?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谅河。 經(jīng)常有香客問我咱旱,道長,這世上最難降的妖魔是什么绷耍? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任吐限,我火速辦了婚禮,結(jié)果婚禮上褂始,老公的妹妹穿的比我還像新娘毯盈。我一直安慰自己,他們只是感情好病袄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布搂赋。 她就那樣靜靜地躺著,像睡著了一般益缠。 火紅的嫁衣襯著肌膚如雪脑奠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天幅慌,我揣著相機(jī)與錄音宋欺,去河邊找鬼。 笑死胰伍,一個(gè)胖子當(dāng)著我的面吹牛齿诞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播骂租,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼祷杈,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了渗饮?” 一聲冷哼從身側(cè)響起但汞,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎互站,沒想到半個(gè)月后私蕾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胡桃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年踩叭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡容贝,死狀恐怖自脯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗤疯,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布闺兢,位于F島的核電站茂缚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏屋谭。R本人自食惡果不足惜脚囊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望桐磁。 院中可真熱鬧悔耘,春花似錦、人聲如沸我擂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽校摩。三九已至看峻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衙吩,已是汗流浹背互妓。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坤塞,地道東北人冯勉。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像摹芙,于是被迫代替她去往敵國和親灼狰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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

  • 簡述: 在類似支付寶為首的應(yīng)用以及各種理財(cái)?shù)壬婕板X財(cái)對(duì)安全性要求較高的應(yīng)用中浮禾,目前普遍對(duì)關(guān)鍵數(shù)據(jù)都做了安全訪問限制...
    C_HPY閱讀 2,944評(píng)論 0 18
  • 一個(gè)日思夜想的男朋友 每天都很有動(dòng)力的起床伏嗜,背書,跟他分享 他不在時(shí)候的每一件事 每晚睡前的視頻電話是最開心的時(shí)候...
    uaremybelief閱讀 237評(píng)論 0 0
  • 中國式好人1伐厌、自我控制是一個(gè)很深的東西承绸,會(huì)嚴(yán)重阻礙我們的心,阻礙我們打開自己的世界挣轨,與別人建立親密關(guān)系军熏; 2、自我...
    遇見活在當(dāng)下的自己閱讀 114評(píng)論 0 0
  • 今天日程安排很滿卷扮。 上午到辦事處辦事荡澎,辦過后趕到律所等爸爸均践,查閱手頭現(xiàn)有的證據(jù)材料后,開具手續(xù)帶著爸爸到高新區(qū)法院...
    i韓小魚閱讀 652評(píng)論 2 5
  • Day7:閱讀《共享經(jīng)濟(jì)》 開發(fā)過剩產(chǎn)能+共享平臺(tái)+人人參與摩幔,三個(gè)要素構(gòu)成共享經(jīng)濟(jì)彤委;按照這個(gè)邏輯,可以共享的資源非...
    打豬草老農(nóng)chenxiao閱讀 154評(píng)論 0 0