iPhone5sから登場した指紋認証ですが、まだちゃんと使った事がなかったので試してみました。
指紋認証可能化どうかはLAContextクラスのcanEvaluatePolicyメソッドを使います。 LAContextを使うためにはLocalAuthenticationをimportする必要があります。
import LocalAuthentication class ViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let context = LAContext() var error: NSError? if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) { // 指紋認証可能 } } }
認証はevaluatePolicyメソッドを使います。
引数には認証画面での説明テキストも入れます。
import LocalAuthentication class ViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let context = LAContext() var error: NSError? if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) { context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "パスコードロックに使う") { success, error in } } } }
起動すると以下のようにパスコードを求められる画面になります。
.deviceOwnerAuthenticationWithBiometricsでなく.deviceOwnerAuthenticationを使った場合
シミュレータで試したところ以下のようにパスコードを求められました。