Touch IDの実装を考えてみた。

Touch IDの実装を考えてみました。といっても、Touch ID自体は2つ関数を呼ぶだけですので、簡単ですね。

まずは、Touch IDが使えるかの判定

<br />
#import &lt;LocalAuthentication/LocalAuthentication.h&gt;</p>
<p>LAContext *myContext = [[LAContext alloc] init];<br />
NSError *authError = nil;<br />
if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&amp;authError]) {<br />
	return YES;<br />
}<br />
return NO;<br />

使える場合は、Touch IDの呼び出し

<br />
LAContext *myContext = [[LAContext alloc] init];<br />
NSString *myLocalizedReasonString = @&quot;String explaining why app needs authentication&quot;;<br />
[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics<br />
		  localizedReason:myLocalizedReasonString<br />
					reply:^(BOOL success, NSError *error) {<br />
	if (success) {<br />
		// User authenticated successfully, take appropriate action<br />
	} else {<br />
		// User did not authenticate successfully, look at error and take appropriate action<br />
	}<br />
}];<br />

これだけでTouch IDが使えるなら、使わない訳にはいけないですね。
しかし、Touch IDに制御が移った時に、applicationDidBecomeActiveに移行して、認証完了後、applicationWillResignActiveに移行するので、起動処理にパスワード画面表示を行っている場合、表示順に気をつけないといけないです。。。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする