热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS-FaceID生物识别集成

如何解决《iOS-FaceID生物识别集成》经验,为你挑选了1个好方法。

我已经为我的应用程序集成/实现了面部识别(本地身份验证)身份验证,除了面部识别提示警报窗口界面外,每件事情都运行良好.

它显示了一个圆角正方形,浅灰色背景和标题"面部ID".

应该为标题上方的空白区域设置什么.这是脸部ID图标的空间吗?如果是,那我该怎么设置呢?我已经尝试了LAContext和LAPolicy中的所有内容.

看看这个快照:

在此输入图像描述

这是我的代码:

    let laCOntext= LAContext()
    var error: NSError?
    let biometricsPolicy = LAPolicy.deviceOwnerAuthenticationWithBiometrics

    if (laContext.canEvaluatePolicy(biometricsPolicy, error: &error)) {

        if let laError = error {
            print("laError - \(laError)")
            return
        }

        var localizedReason = "Unlock device"
        if #available(iOS 11.0, *) {
            switch laContext.biometryType {
            case .faceID: localizedReason = "Unlock using Face ID"; print("FaceId support")
            case .touchID: localizedReason = "Unlock using Touch ID"; print("TouchId support")
            case .none: print("No Biometric support")
            }
        } else {
            // Fallback on earlier versions
        }


        laContext.evaluatePolicy(biometricsPolicy, localizedReason: localizedReason, reply: { (isSuccess, error) in

            DispatchQueue.main.async(execute: {

                if let laError = error {
                    print("laError - \(laError)")
                } else {
                    if isSuccess {
                        print("sucess")
                    } else {
                        print("failure")
                    }
                }

            })
        })
    }

DazChong.. 15

这只发生在模拟器中,在实际设备中画布被面部图标动画占据.

localizedReason仅适用于Touch ID,因为它们共享相同的API.

更新1:添加了屏幕录制:

iPhone X:https://youtu.be/lklRnLNHyQk

iPhone 7:https://youtu.be/iIcduvD5JO0

iPhone X模拟器:https://youtu.be/bOlRVLIND5c

他们都运行相同的代码:

func beginFaceID() {

    guard #available(iOS 8.0, *) else {
        return print("Not supported")
    }

    let cOntext= LAContext()
    var error: NSError?

    guard context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) else {
        return print(error)
    }

    let reason = "Face ID authentication"
    context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) { isAuthorized, error in
        guard isAuthorized == true else {
            return print(error)
        }

        print("success")
    }

}

这是TouchID和FaceID的工作代码,包含所有错误代码(Swift 4)

/sf/ask/17360801/



1> DazChong..:

这只发生在模拟器中,在实际设备中画布被面部图标动画占据.

localizedReason仅适用于Touch ID,因为它们共享相同的API.

更新1:添加了屏幕录制:

iPhone X:https://youtu.be/lklRnLNHyQk

iPhone 7:https://youtu.be/iIcduvD5JO0

iPhone X模拟器:https://youtu.be/bOlRVLIND5c

他们都运行相同的代码:

func beginFaceID() {

    guard #available(iOS 8.0, *) else {
        return print("Not supported")
    }

    let cOntext= LAContext()
    var error: NSError?

    guard context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) else {
        return print(error)
    }

    let reason = "Face ID authentication"
    context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) { isAuthorized, error in
        guard isAuthorized == true else {
            return print(error)
        }

        print("success")
    }

}

这是TouchID和FaceID的工作代码,包含所有错误代码(Swift 4)

/sf/ask/17360801/


推荐阅读
author-avatar
caiyingsheng852
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有