- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 TouchID 帮助用户登录我的应用程序。每当应用程序启动时,用户首先看到的是 TouchID 对话框。
我的问题是,如果用户在他的手指已经放在主页按钮上时启动我的应用程序 - 用户会立即通过身份验证,然后才会显示 TouchID 对话框。然后 - 无论我如何关闭对话框(输入密码或取消),灰色屏幕始终位于我的应用程序上方,我必须重新启动我的 iPhone 才能继续工作。
我该如何解决这个问题?
最佳答案
确保仅在应用程序状态为事件时显示 Touch ID 对话框。如果您在启动过程中立即显示它(意味着应用程序在技术上仍处于非事件状态),则可能会发生此类问题。这没有记录在案,我很难发现这一点。
例如,要确保它在应用程序处于事件状态时运行,您可以检查当前应用程序状态,然后立即运行它,或者在我们收到 applicationDidBecomeActive 通知时运行。请参见下面的示例:
- (void)setup
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidBecomeActive:)
name:UIApplicationDidBecomeActiveNotification
object:nil];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// We need to be in an active state for Touch ID to play nice
// If we're not, defer the presentation until we are
if([UIApplication sharedApplication].applicationState == UIApplicationStateActive)
{
[self presentTouchID];
}
else
{
__weak __typeof(self) wSelf = self;
_onActiveBlock = ^{
[wSelf presentTouchID];
};
}
}
-(void)applicationDidBecomeActive:(NSNotification *)notif
{
if(_onActiveBlock)
{
_onActiveBlock();
_onActiveBlock = nil;
}
}
- (void)presentTouchID
{
_context = [[LAContext alloc] init];
_context.localizedFallbackTitle = _fallbackTitle;
[_context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:_reason
reply: ^(BOOL success, NSError *authenticationError)
{
// Handle response here
}];
}
关于ios - TouchID 已验证但仍显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27034930/
我正在创建一个应用程序,用户必须登录并可以使用 FaceID 或 TouchID 来加快登录过程。 可以在应用程序的内部设置中启用或禁用使用 FaceID 或 TouchID 登录。 首次使用 Tou
本文实例为大家分享了iOS指纹解锁的具体代码,供大家参考,具体内容如下 1、首先,引入依赖框架 LocalAuthentication.framework #import <LocalAu
我想使用 TouchID 验证我自己的应用程序。 1.我希望用户可以点击“输入密码”来调用系统内置密码屏幕进行身份验证,如果成功则进入我自己的应用程序。 但我不知道如何在“case LAErrorUs
我有一个安全 Controller ,当应用程序激活时触发 Touch ID。如果用户取消 Touch ID 框,则会显示一个键盘以输入数字代码。但是我的键盘已加载(inputAccessoryVie
如何解决 TouchId 错误:Domain=com.apple.LocalAuthentication Code=-2“已被用户取消。” 我尝试再次添加本地上下文: let myContext =
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
我正在使用 TouchID 帮助用户登录我的应用程序。每当应用程序启动时,用户首先看到的是 TouchID 对话框。 我的问题是,如果用户在他的手指已经放在主页按钮上时启动我的应用程序 - 用户会立即
我正在研究 Apple 的 Touch ID,更准确地说是 Local Authenticator。截至目前,文档非常稀少。主要是这样的: LAContext *myContext = [[LACon
我需要我的应用程序使用 TouchId 登录,但我不希望用户选择或回退到密码选项。换句话说,我想隐藏下图中的“输入密码”标签。谢谢。 最佳答案 答案是“是”。您可以隐藏“输入密码”... 试试下面的代
touchid指纹识别是iphone 5s设备中增加的一项重大功能.苹果的后续移动设备也相继添加了指纹功能,在实际使用中还是相当方便的,比如快捷登录,快捷支付等等.系统提供了相应框架,使用起来还是比
LocalAuthentication 将让您回退到需要手动输入密码,但如果您使用钥匙串(keychain) touchid 工作流程,则回退是密码。 要么他们没有将它存储在钥匙串(keychain)
在我的应用程序 IOS 中,我在 ViewController 中添加了一个 Switch 元素来允许用户启用或不启用 TouchId 身份验证。但我不明白是否有“isEnableToutchId”属
我想用 Passcode 或 TouchID 锁定特定应用程序,如 facebook、whatsapp 等,这样未经授权的用户就无法访问我想保护的应用程序。 我在网上没有找到任何方法,不确定是否可以锁
在进行身份验证后,如果我按取消并设置 [buttonTouch setHidden:NO]; 出现,按钮不会立即出现,需要很长时间才能出现,尽管按钮事件正在运行。 我的代码: if ([context
我们的应用程序有以下要求。 如果用户在应用安装后添加/更新任何指纹,我们应该限制用户登录。 最佳答案 如果您的应用将某些凭据保存到钥匙串(keychain),然后使用 TouchID 访问该保存的凭据
如果我有一个我们想要使用 TouchID 的公司应用程序,但需要防止在员工的设备上注册了另一个家庭成员的指纹的情况下未经授权的访问,可以做什么? 最佳答案 不支持您想要的内容。 LAContext 功
我的一个应用程序具有带电子邮件和密码的登录功能,并且按预期工作正常。 现在,我的客户在这里想要什么 email + TouchID (没有密码) 需要登录到应用程序。 所以我的第一个问题是,我可以同时
我已经在 View Controller 上实现了密码/TouchID/FaceID,当我遇到成功案例时,我希望提示停止触发,但它只是一遍又一遍地触发。 在我的 VC 中: var context:
我的 iOS 应用程序使用 TouchID 来解锁一些安全服务。设计者不希望“取消”按钮的文本显示为“取消”,而是显示为“稍后设置”。我可以看到如何更改默认“输入密码”按钮的文本,这很简单: LACo
有没有办法确定是否已注册指纹但 Touch ID 由于指纹验证失败次数过多而当前处于“暂停”状态? 最佳答案 错误代码可以与 LAError 类进行比较。 func errorMessageForLA
我是一名优秀的程序员,十分优秀!