LAContext.evaluatePolicy
呼び出し後にTouchID警告ダイアログをプログラムでキャンセルすることはできますか?はいの場合:どのように?iOSでプログラムでTouchID認証ダイアログをキャンセルする
答えて
Appleが発行するすべてのAPIが、developer.apple.com(またはXcodeのドキュメントビューア)のドキュメントに記載されているわけではありません。 APIは公開APIを一覧表示するので、ヘッダーファイル(LocalAuthentication/LAContext.h
を参照)とそのヘッダーから生成されたSwiftインターフェイスには何も表示されません。ヘッダーにあるものはパブリックAPIなので、自由に呼び出すことができます。
時々(常にではない)文書化されていないAPIはそれらを使用する方法を説明まともなヘッダコメントを持っている...ありがたいことLAContext.invalidate()
は、これらのいずれかです。
/// Invalidates the context.
///
/// @discussion The context is invalidated automatically when it is (auto)released. This method
/// allows invalidating it manually while it is still in scope.
///
/// Invalidation terminates any existing policy evaluation and the respective call will
/// fail with LAErrorAppCancel. After the context has been invalidated, it can not be
/// used for policy evaluation and an attempt to do so will fail with LAErrorInvalidContext.
///
/// Invalidating a context that has been already invalidated has no effect.
@available(iOS 9.0, *)
public func invalidate()
確かに、それはタッチIDながらinvalidate()
を呼び出すようになります。アラートが表示されている場合は、それを却下してください。 (私は自分自身を試していない。)
iOSの11更新:ノート代わりにタッチIDのフェイスIDを持つデバイス上で、あなたがLAContext.evaluatePolicy
を呼び出すときに表示される警告/ HUD-のようなUIがないことを対話を要求または許可し、認証が成功するとそれ自体を終了します。理論的には、invalidate
コールはまだそれを却下します(または、顔IDがユーザーを識別しない場合に表示されるフォローアップ、実際にはインタラクティブな警告)。
しかし、すべての可能なデバイスと認証方法では、依頼した後にいつでもLAContext
認証をキャンセルするのに十分な時間があると仮定するのは賢明ではないかもしれません。
期待どおりに動作します。 :) –
それは本当にクールです。良い発見! –
私は 'invalidate()'を使って解読できません。私は間違って何をしていますか? :) – hfossli
- 1. 認証ダイアログでログインしてキャンセルする
- 2. TouchID認証とキーチェーンのベストプラクティス
- 3. ポップアップ認証c#seleniumでキャンセルを押す
- 4. jQuery - ドロップダウンの確認ダイアログで変更イベントをキャンセルする
- 5. UIAlertViewをプログラムでキャンセルする
- 6. プライバシーポリシーの認証ダイアログですか?
- 7. 認証ダイアログのカスタマイズ
- 8. Facebook iOS SDK:ウォールに投稿ダイアログがキャンセルで終了しない
- 9. 払い戻しをしないでストライプ認証をキャンセルする
- 10. iOS 10でTouchIDを使用する方法
- 11. TouchIDが失敗した場合、システムのパスコード認証に転送
- 12. iOS Appでのユーザー認証
- 13. FacebookでのiOS firebase認証
- 14. iOSシミュレータでSSL認証がクラッシュする
- 15. 認証後にiOS Facebook Publish Feedダイアログが表示されない
- 16. 新しい認証ダイアログが
- 17. TortoiseSVNのユーザ認証ダイアログ
- 18. JQueryダイアログが「x」でキャンセルするのと同じ方法でキャンセルします。
- 19. 認証ダイアログに関する問題
- 20. C#.Net 3.5 SP1で認証ダイアログを表示する方法
- 21. MacOS認証ダイアログでアプリケーションタイトルを変更するには?
- 22. iOSでHTTP接続をキャンセルする
- 23. IOS https認証
- 24. iOS認証プロセス
- 25. iOSでログイン認証を行うには
- 26. SafariでFacebookの認証ダイアログが違うのですか?
- 27. Passport - ブラウザで '認証が必要です'ダイアログ
- 28. ダイアログでWebViewのGoogleウェブサイトでユーザーを認証
- 29. Android/iOs指紋認証スキャナを認証に使用する
- 30. iOSサブスクリプションをキャンセルする
質問は明確ではありません。何を達成しようとしていますか? – Vijay
'LAContext.evaluatePolicy'は、TouchIDの入力を促す警告ダイアログを開きます。私は自分のコードからダイアログを閉じたいと思う。例えばユーザーが何もしなかった場合、数秒後に。 –
興味深いことに、彼らは "AppCancel"エラーコードを追加しましたが、私はドキュメントでそれをキャンセルするためのAPIを見ることができません。 iOS 9.0のdiffには 'LAContext invalidate'メソッドがありますが、それが公開されているとは思えません。 – jcaron