日安。
我正在尝试在SwiftUI中实现一个登录页面,但我想不出如何让应用程序在成功登录后提示用户保存他们的凭据。
这是输入字段的代码。
TextField("Phone number", text: $phoneNumber)
.keyboardType(.numbersAndPunctuation)
.textContentType(.username)
SecureField("Password", text: $password)
.keyboardType(.asciiCapable)
.textContentType(.password)成功后,环境变量将发生更改,父组件将停止呈现登录页面。
我启用了“自动填充凭据提供程序”权限。
我试图实现的是在iOS,自填中使用本机“密码管理器”。

当用户提交他们的凭据并成功地进行身份验证时,应该像上面那样显示一个提示符,询问他们是否想保存他们用来登录的密码。
发布于 2022-07-09 12:02:00
密码自动填充的问题不是UIKit/SwiftUI实现。要在应用程序中获得支持,最重要的事情是:
webcredentials:example.com (将example.com替换为您实际拥有和访问的域!)apple-app-site-association的文件放置到.well-known文件夹中的公共可访问根目录中。
可以使用命令curl https://www.example.com/.well-known/apple-app-site-association测试访问。(是的,必须启用HTTPS并拥有有效的证书!)apple-app-site-association的内容必须引用Apple和应用程序的bundle标识符,如下所示(Team为"A1BC23REUG“,bundle标识符为”com.example.signin-游乐场“){
"webcredentials": {
"apps": [
"A1BC23REUG.com.example.signin-playground"
]
}
}textContentType中的输入字段。我用这个要旨编写了一个小示例,并成功地进行了测试。
如果自动填充无法工作(例如,您只获得一个非特定的密码完成对话框),则通常必须检查包/团队标识符和apple-app-site-association文件中的标识符。如果您最近更改了文件中的某些内容,则可能是将内容缓存在您的设备上(因此您可以删除应用程序并重新安装它),或者将其缓存在Apples网络中(在这种情况下,您可以以记录在这里的形式激活另一种模式)
如果没有出现“是否希望保存此密码”对话框,则要么没有正确设置“关联域”,要么iOS启发式没有检测到屏幕中的相关更改。
https://stackoverflow.com/questions/61229358
复制相似问题