<a target="_blank" href="http://blog.csdn.net/johnson_puning/article/details/36188255">Touch ID簡介</a>
Touch ID是蘋果公司提供的一種将指紋用作密碼的簡便方式。隻需輕觸i主螢幕按鈕,就能激活Touch ID傳感器。主螢幕按鈕周圍的鋼圈檢測手指通知 Touch ID讀取指紋。Touch ID 不會儲存指紋的任何圖像。它隻存儲指紋的數學表達式。
Touch ID的指紋資料存儲在A7處理器的一個叫"secure enclave"協處理器上,唯一的Touch ID指紋識别器與唯一單獨的A7處理器比對。也就是說你将Touch ID拆開裝到别的iPhone 5s上,Touch ID是無法使用的,因為它無法讀取到A7處理器上的指紋資料。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQ3chVEa0V3bT9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVPj1mYwVzVkdXOsJmdO5mYvlTbhZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DN2UzMyIDM2ETMwcDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
使用Touch ID需要導入LocalAuthentication.framework,必須在裝有iOS8的真機裝置才能編譯通過。
#import <LocalAuthentication/LAContext.h>
判斷[context canEvaluatePolicy:error:];判斷目前是否有可用Touch ID,裝置沒有裝置沒有TouchID或者TouchID未開啟傳回false,有TouchID并開啟傳回true.
調用[contextevaluatePolicy:localizedReason:reply]可以顯示驗證界面,驗證完畢後有一個回調。蘋果官方文檔規定第二個參數localizedReason一定要(shoudbe)使用使用者的目前語言呈現。
在真機測試中,指紋識别3次錯誤會退出驗證界面并輸出錯誤資訊;在驗證界面點選“輸入密碼”,也會退出,并輸出錯誤資訊。估計這是iOS8 Beta的bug,正常應該是指紋識别失敗或者點選“輸入密碼”要彈出數字鍵盤。正式釋出時,官方應該會處理好這個問題。
測試用的代碼片段