如何在 SwiftUI 中使用 Touch ID 和 Face ID?

news/2024/11/15 22:40:20/

1. 需要通过指纹,面容认证后才能打开 App


2. 添加配置

需要向 Info.plist 文件中添加一个配置,向用户说明为什么要访问
添加 Privacy - Face ID Usage Description
并为其赋予值 $(PRODUCT_NAME) need Touch Id or Face ID permission for app lock



3. Show me the code

//
//  SwiftUIView84.swift
//  bill2
//
//  Created by 朱洪苇 on 2023/7/22.
//import SwiftUI
import LocalAuthenticationstruct SwiftUIView84: View {@State private var isUnlocked = falsefunc authenticate() {let context = LAContext()var error: NSError?// 检查是否可以进行生物特征认证if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {// 有可能,所以继续使用它let reason = "We need to unlock your data."context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) { success, authenticationError in// 身份验证现已完成DispatchQueue.main.async {if success {// authenticated successfullyself.isUnlocked = trueprint("成功认证")} else {// there was a problemself.isUnlocked = falseprint("有个问题")}}}} else {print("没有生物识别")// 没有生物识别}}var body: some View {VStack {if self.isUnlocked {Text("Unlocked").foregroundColor(.green)} else {Text("Locked").foregroundColor(.red)}}.font(.largeTitle).onAppear(perform: authenticate)}
}struct SwiftUIView84_Previews: PreviewProvider {static var previews: some View {SwiftUIView84()}
}

4. 真机运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


喜欢或对你有帮助,请点个赞吧,自己先点个嘿嘿 。

有错误或者疑问还请评论指出。

我的个人网站 点击访问 hongweizhu.com 。


END



http://www.ppmy.cn/news/977767.html

相关文章

django跨域设置

1.安装 (venv) ***\data_analyse_web>pip install django-cors-headers 2.添加应用 :在settings.py中添加应用,放到任意位置都行 INSTALLED_APPS {# ...corsheaders,# ... } 3. 设置中间层,在settings.py中添加中间层,放到最前面 MIDDLEWARE [c…

怎么快速定位bug?怎么编写测试用例?

目录 01定位问题的重要性 02问题定位技巧 03初次怎么写用例 作为一名测试人员如果连常见的系统问题都不知道如何分析,频繁将前端人员问题指派给后端人员,后端人员问题指派给前端人员,那么在团队里你在开发中的地位显而易见 ,口碑…

删除git关联,提交到新的仓库

要删除git关联并创建一个新的git库,可以按照以下步骤操作: 进入你要处理的本地git仓库目录。 删除与远程仓库的关联: git remote remove origin初始化一个新的git仓库: git init添加所有文件到本地仓库: git add …

Web3教程| 什么是地址监控?如何使用地址监控追踪黑客地址?

在当今Web3世界里,保护个人资产安全至关重要。据报道在2023年上半年,Web3领域因黑客攻击事件造成的损失高达4.794亿美元。 此外,10多个公链遭受黑客攻击,其中以太坊链遭受的损失最多,约为2.87亿美元。这些黑客的存在迫…

Go基本数据类型及内置函数(一文稳定基础)

文章目录 1. 基础数据类型2.内置函数3.函数4.列表操作及for循环5.原子性操作6.通道7.协程与并发安全8.定时器 1. 基础数据类型 1. bool:布尔类型,只有 true 和 false 两个值。var test2 bool true2. string:字符串类型,表示一组字…

Jmeter(二十三):快速生成测试报告

一、jmeter配置 首先要保证jmeter命令是ok的,如果你在cmd中输入jmeter -v,有出现如下截图所示的信息,那就说明jmeter环境ok; 二、jmeter执行结合命令 生成HTML测试报告 1.完成脚本的调试、参数化、断言等操作。然后在聚合报告中指定日志文件存储路径,路径中最好不要包含有…

【云驻共创】CodeArts Repo ---高效代码协同开发之旅

目录 一、代码托管发展史 1.1 第一代 1.2 第二代 1.3 第三代 二、CodeArts Repo 介绍 二、CodeArts Repo 功能架构 2.1 研发协同 2.2 代码管理功能 2.3 代码存储特性 三、CodeArts Repo 技术能力 三、华为云代码托管技术发展历程 四、CodeAr…

解决C语言编程常见问题,轻松提高编程水平!

遇到错误时应该如何处理 当遇到错误时,不要惊慌失措。首先要查看错误提示信息,如果是中文提示就直接阅读,如果是英文提示则进行翻译理解。根据错误提示定位到错误发生的代码行数,通常错误就在该行的上下几行代码中。不要偷懒&…