iOS- Swift:指觸即開,如何集成Touch ID指紋識別功能


1.前言  

隨着移動支付時代的到來,Touch ID 指紋驗證迅速被支付寶,微信錢包普及,相信各位朋友使用后也大呼方便。之前寫了篇關於iOS9的3D Touch的集成使用,有朋友在我博客下提到,讓我寫一篇關於指紋解鎖的blog,元旦結束后,立馬前來向大家分享我的一點點拙見。

 

 
關於3D Touch 感興趣的朋友可以看我前篇blog
 *    iOS- 指壓即達,如何集成iOS9里的3D Touch
 
 

2.指紋驗證Touch ID的介紹  

 

相比3D Touch來說,指紋驗證Touch ID 的使用比較簡單
主要分成兩步
1.第一步當然是檢測你的手機是否可以使用指紋識別(硬件配置)
2.第二步自然是識別你的指紋是否通過(蘋果的指紋生物識別方式)
 
 
指紋驗證通過的就不多說了,這里因為比較簡單,就說說幾種失敗的情況
1.例如,在iPhone 4s,5上運行結果為:
com.apple.LocalAuthentication Code=-6 "Biometry is not available on this device.
 
2.例如,在模擬器
com.apple.LocalAuthentication Code=-1000 "Simulator is not supported.
  這上面兩種是硬件配置
 
 
接下來還有幾種需要注意是:指紋識別不通過,也就是指紋識別錯誤!
1.連續三次指紋識別錯誤
com.apple.LocalAuthentication Code=-1 "Aplication retry limit exceeded.
 
2.用戶在Touch ID對話框中點擊了取消按鈕
com.apple.LocalAuthentication Code=-2 "Canceled by user.
 
 
3.Touch ID功能被鎖定,下一次需要輸入系統密碼
com.apple.LocalAuthentication Code=-1 "Biometry is locked out.
 
4.用戶在Touch ID對話框中點擊輸入密碼按鈕
com.apple.LocalAuthentication Code=-3 "Fallback authentication mechanism selected.
 
 

2.指紋驗證Touch ID的實現  

好了,下面就直接上代碼了,注釋都給了較為詳細的解釋。

別忘了 import LocalAuthentication 框架

    override func viewDidLoad() {
        super.viewDidLoad()
        
        //1.初始化TouchID句柄
        let authentication = LAContext()
        var error: NSError?
        
        //2.檢查Touch ID是否可用
        let isAvailable = authentication.canEvaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics,
            error: &error)
        
        //3.處理結果
        if isAvailable
        {
            NSLog("Touch ID is available")
                //這里是采用認證策略 LAPolicy.DeviceOwnerAuthenticationWithBiometrics
                //--> 指紋生物識別方式
                authentication.evaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "這里需要您的指紋來進行識別驗證", reply: {
                    //當調用authentication.evaluatePolicy方法后,系統會彈提示框提示用戶授權
                (success, error) -> Void in
                if success
                {
                    NSLog("您通過了Touch ID指紋驗證!")
                }
                else
                {
                    //上面提到的指紋識別錯誤
                    NSLog("您未能通過Touch ID指紋驗證!錯誤原因:\n\(error)")
                }
            })
        }
        else
        {
            //上面提到的硬件配置
            NSLog("Touch ID不能使用!錯誤原因:\n\(error)")
        }
    }

 

如果還有什么不太明白,歡迎留言。2016第一篇blog,祝各位新年快樂

作者: 清澈Saup
出處: http://www.cnblogs.com/qingche/
本文版權歸作者和博客園共有,歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文連接。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM