しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

【iOS】指紋認証を使ってみる

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
                
            }
        }
    }
}

起動すると以下のようにパスコードを求められる画面になります。

f:id:llcc:20161218114101p:plain

.deviceOwnerAuthenticationWithBiometricsでなく.deviceOwnerAuthenticationを使った場合

シミュレータで試したところ以下のようにパスコードを求められました。

f:id:llcc:20161218114448p:plain