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

jopen 8年前發布 | 14K 次閱讀 Swift Apple Swift開發

1.前言

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

關于3D Touch 感興趣的朋友可以看我前篇blog

*    iOS- 指壓即達,如何集成iOS9里的3D Touch

http://www.cnblogs.com/qingche/p/4875235.html

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/

本文版權歸作者和博客園共有,歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文連接。

來自: http://www.cnblogs.com/qingche/p/5099333.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!