objective-c – 如何检测设备是否支持FaceID?

前端之家收集整理的这篇文章主要介绍了objective-c – 如何检测设备是否支持FaceID?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
它有点早,但我打算专门为FaceID添加功能,所以在此之前我需要验证设备支持FaceID与否?
需要建议和帮助.
提前致谢.

解决方法

我发现你必须先调用canEvaluatePolicy才能正确获取生物测量类型.如果不这样做,那么原始值总是为0.

所以在Swift 3中就是这样,在Xcode 9.0& beta 9.0.1.

class func canAuthenticateByFaceID () -> Bool {
    //if iOS 11 doesn't exist then FaceID doesn't either
    if #available(iOS 11.0,*) {
        let context = LAContext.init()

        var error: NSError?

        if context.canEvaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics,error: &error) {
            //As of 11.2 typeFaceID is now just faceID
            if (context.biometryType == LABiometryType.typeFaceID) {
                return true
            }
        }
    }

    return false
}

你当然可以写这个,只是为了看它是否是生物识别并将类型与bool一起返回,但这对于大多数人来说应该足够了.

猜你在找的Xcode相关文章