如何访问新iPhone X的FaceID?

Hel*_*miB 5 ios iphone-x

iPhone X推出FaceID解锁手机并制作Apple Pay.

我们可以访问API吗?

我知道上次我们要等到TouchID发布给开发人员.

或许有任何日期线吗?

Mic*_*ann 7

它实际上已经在Xcode 9中可用,在同一个地方找到了TouchID功能. 例如,查看LocalAuthentication - > LAContext - >LABiometryType.

如果你看一下更高级别的文档LAContext,那么新API可以在它们上面找到"Beta"标签(大概这些将在Xcode 9和iOS 11正式发布时被删除).

  • 更新:LAContext().biometryType在iOS 11.0.3上运行良好.我使用`if #available(iOS 11.0.3,*)`的宏来确保在早期版本中没有调用它. (2认同)

ric*_*ter 6

这里有一个评论和答案,每个都只讲述故事的一部分,所以让我们将它们组合在一起:


正如@ Paulw11在评论中指出的那样,使用Touch ID进行身份验证的API - 检查可用性,实际请求身份验证 - 对于Face ID的工作方式相同.您可能会注意到所有这些API实际上都没有真正提到Touch ID,只是摘要中的"生物识别"...这几乎就像Apple在iOS 8中发布API时一样.LAContext canEvaluatePolicyevaluatePolicy

Apple的Craig Federighi 最近在The Talk Show播客中露面证实了这一点.他说,他和其他携带iPhone X的Apple员工一直在运行使用这些API的现有应用程序 - 银行应用程序,航空公司应用程序等,而且他们"只使用"Face ID.相同的API调用只是自动调用新的UI,除了它通常更快,因为用户可能已经在看电话,所以他们不必做任何事情.


现在,正如@ MichaelDautermann的答案所述,还有用于区分Touch ID和Face ID的新API:告诉您当前设备支持哪种生物识别.LAContext biometryType

如果相同的API用于调用Touch ID和Face ID,为什么新的东西呢?这样你的应用就可以在用户界面中谈论它了.考虑所有银行和信用卡和密码管理器以及您曾经使用过的应用程序 - 您使用密码登录该应用程序,然后它会询问您下次是否要使用Touch ID而不是密码.所有这些都是来自这些应用程序开发人员的自定义UI,因此他们需要使用这个新API,以便他们的UI可以正确地说"使用Touch ID"或"使用Face ID",具体取决于当前设备.