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

1.前言  

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

 

 
關於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 框架app

    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/
本文版權歸做者和博客園共有,歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。ide

相關文章
相關標籤/搜索