iOS Touch ID(指紋識別)開發(fā)

簡介

iPhone 5s~iPhone 8都可以通過指紋進行解鎖鸯旁,省去了反復(fù)輸入密碼的繁瑣程序,這個就是Touch ID指紋識別技術(shù)。在iOS 8以后泣港,Apple也開放了Touch ID的API給開發(fā)者,因此很多App也引入了這個新的登錄方式价匠。Face ID實現(xiàn)過程與Touch ID基本相同当纱,后期也會再做補充


開發(fā)應(yīng)用
  • 要實現(xiàn)指紋識別的功能需要引入LocalAuthentication框架
  • 首先我們需要判斷目前設(shè)備是否支持Touch ID功能
func canEvaluatePolicy(_ policy: LAPolicy, error: NSErrorPointer) -> Bool
  • LAPolicy有兩個值,分別是deviceOwnerAuthenticationWithBiometricsdeviceOwnerAuthentication
  • deviceOwnerAuthenticationWithBiometrics:用手指指紋去驗證,iOS8.0以上可用
  • deviceOwnerAuthentication:使用TouchID或者密碼驗證,默認(rèn)是錯誤三次指紋或者鎖定后,彈出輸入密碼界面iOS 9.0以上可用
  • 開始指紋驗證
func evaluatePolicy(_ policy: LAPolicy, localizedReason: String, reply: @escaping (Bool, Error?) -> Void)

主要代碼

    func evaluate(reason: String, completed: @escaping (_ isSuccess: Bool)->())  {
        //記錄是否開啟Touch ID
        var canTouchID = true
        canTouchID = content.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error)

        guard canTouchID else {
            completed(false)
            return
        }
        //本地認(rèn)證上下文聯(lián)系對象踩窖,每次使用Touch ID功能都要重新初始化
        content = nil
        content = LAContext()

        guard let content = content else { return }
        //調(diào)起Touch ID驗證彈框
        content.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: “指紋驗證登錄”) {
            (success, error) in
            //成功與失敗進行相應(yīng)的操作
            if success {
                completed(true)
            }else {
                completed(false)
                print("\(error!)")
                if let errorCode = LAError.Code(rawValue: (error! as NSError).code) {
                  switch errorCode
                    //對應(yīng)errorCode的相應(yīng)操作
                    ……
                }
            }
        }
    }

localizedReason:用于設(shè)置提示語坡氯,表示為什么要使用Touch ID

常見erro描述
  • 在模擬器上運行結(jié)果
Error Domain=com.apple.LocalAuthentication Code=-1000 "Simulator is not supported." 
UserInfo=0x7ffe604b0790 {NSLocalizedDescription=Simulator is not supported.
  • 在有TouchID 的功能下,沒有設(shè)置TouchID的運行結(jié)果
Error Domain=com.apple.LocalAuthentication Code=-7 "No fingers are enrolled with Touch ID." 
UserInfo=0x170075fc0 {NSLocalizedDescription=No fingers are enrolled with Touch ID.
  • 連續(xù)三次指紋識別錯誤
Error Domain=com.apple.LocalAuthentication Code=-1 "Aplication retry limit exceeded." 
UserInfo=0x1740797c0 {NSLocalizedDescription=Aplication retry limit exceeded.}
  • 用戶在Touch ID對話框中點擊了取消按鈕
Error Domain=com.apple.LocalAuthentication Code=-2 "Canceled by user." 
UserInfo=0x17006c780 {NSLocalizedDescription=Canceled by user.
  • Touch ID三次校驗失敗
Error Domain=com.apple.LocalAuthentication Code=-1 "Application retry limit exceeded." 
UserInfo={NSLocalizedDescription=Application retry limit exceeded.}
  • Touch ID多次校驗失敗
Error Domain=com.apple.LocalAuthentication Code=-8 "Biometry is locked out." 
UserInfo={NSLocalizedDescription=Biometry is locked out.

參考文章
http://www.reibang.com/p/aef5a506311b
https://juejin.im/entry/59795ee95188253e000a74c3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市箫柳,隨后出現(xiàn)的幾起案子手形,更是在濱河造成了極大的恐慌,老刑警劉巖滞时,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叁幢,死亡現(xiàn)場離奇詭異,居然都是意外死亡坪稽,警方通過查閱死者的電腦和手機曼玩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窒百,“玉大人黍判,你說我怎么就攤上這事「萆遥” “怎么了顷帖?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渤滞。 經(jīng)常有香客問我贬墩,道長,這世上最難降的妖魔是什么妄呕? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任陶舞,我火速辦了婚禮,結(jié)果婚禮上绪励,老公的妹妹穿的比我還像新娘肿孵。我一直安慰自己,他們只是感情好疏魏,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布停做。 她就那樣靜靜地躺著,像睡著了一般大莫。 火紅的嫁衣襯著肌膚如雪蛉腌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天葵硕,我揣著相機與錄音眉抬,去河邊找鬼。 笑死懈凹,一個胖子當(dāng)著我的面吹牛蜀变,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播介评,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼库北,長吁一口氣:“原來是場噩夢啊……” “哼爬舰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寒瓦,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤情屹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后杂腰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垃你,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年喂很,在試婚紗的時候發(fā)現(xiàn)自己被綠了惜颇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡少辣,死狀恐怖凌摄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漓帅,我是刑警寧澤锨亏,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站忙干,受9級特大地震影響器予,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捐迫,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一劣摇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弓乙,春花似錦、人聲如沸钧惧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浓瞪。三九已至懈玻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乾颁,已是汗流浹背涂乌。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留英岭,地道東北人湾盒。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像诅妹,于是被迫代替她去往敵國和親罚勾。 傳聞我的和親對象是個殘疾皇子毅人,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

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

  • iOS 8 SDK向開發(fā)者公開了Touch ID指紋識別功能,允許App對用戶身份進行本地驗證尖殃。使用TouchID...
    走在路上的小二閱讀 920評論 0 4
  • 自iPhone 5S始丈莺,蘋果公司推出了全新生物安全識別技術(shù)---指紋識別驗證(Touch ID)。使得我們可以更快...
    mrChan1234閱讀 1,274評論 0 0
  • 指紋解鎖原理: 蘋果在文件中對iPhone 5S配備的Touch ID指紋識別系統(tǒng)的功能與工作原理進行了詳細(xì)說明送丰。...
    小碼農(nóng)CC閱讀 661評論 0 0
  • 實用原理: 指紋識別技術(shù)就是把一個人同他的指紋對應(yīng)起來缔俄,通過比較他的指紋和預(yù)先保存的指紋進行比較,就可以驗證他的真...
    艷曉閱讀 3,207評論 0 19
  • 00 僅以此文獻給我那段8個月的職業(yè)空窗期 2016年11月16日瞎疼,我從華為裸辭回到成都。 2017年6月19日壁畸,...
    Sudden閱讀 399評論 3 4