【发布时间】:2014-09-24 21:10:01
【问题描述】:
LAContext 具有检查设备是否可以评估触摸 ID 并给出错误消息的方法。 问题是系统在两种情况下都会给出相同的错误消息“LAErrorPasscodeNotSet”:
1) 如果用户有 Touch ID,但在设置中将其关闭(iPhone 5s 和 iOS8)
2) 如果设备没有 Touch ID(iOS8 的 iPad)
问:如何查看设备是否支持Touch ID,但在设置中没有开启?
更新:
已就此错误(ID# 18364575)向 Apple 创建了票证并收到了答复:
“工程部门已根据以下信息确定此问题的行为符合预期:
如果未设置密码,您将无法检测到 Touch ID 的存在。设置密码后,canEvaluatePolicy 最终将返回 LAErrorTouchIDNotAvailable 或 LAErrorTouchIdNotEnrolled,您将能够检测到 Touch ID 的存在/状态。
如果用户在带有 Touch ID 的手机上禁用密码,他们知道他们将无法使用 Touch ID,因此应用不需要检测 Touch ID 的存在或推广基于 Touch ID 的功能。 "
【问题讨论】:
-
工程师的回复提醒了请求位置权限的建议(如果用户已将其关闭或未授权应用程序,则不要再询问)。麻烦的是,它假定用户熟悉功能和设置,即他们总是知道在“设置”中再次打开它们。然而,根据我的经验,这是一厢情愿的想法......用户忘记了这些事情,这是可以理解的。
-
看起来 Apple 已修复此问题:iOS 8.1 iPad 3(无触摸)- LAErrorPasscodeNotSet,iOS 8.4 iPad 3(无触摸)- LAErrorTouchIDNotAvailable
-
只是出于好奇,关于您的应用程序的设计:当用户明确禁用它并且您的应用程序无法使用它时,您为什么还要关心设备是否支持 TouchID 硬件?
标签: ios iphone ios8 touch-id face-id