SecureField 的 .newPassword 选择强密码不使用 SwiftUI 和 iOS14

Posted

技术标签:

【中文标题】SecureField 的 .newPassword 选择强密码不使用 SwiftUI 和 iOS14【英文标题】:.newPassword for SecureField to choose Strong Password not working using SwiftUI and iOS14 【发布时间】:2021-03-14 02:23:48 【问题描述】:

我正在尝试使用 SwiftUI 在 SecureField 中使用强密码建议功能,但它不起作用。只是想知道我做错了什么还是一个错误。

@State var password: String = ""
@State var confirmPassword: String = ""

var body: some View 
    
    VStack 
        SecureField("Password", text: $password) 
            // do something
        
        .textContentType(.newPassword)
        SecureField("Confirm Password", text: $confirmPassword) 
            // do something
        
        .textContentType(.newPassword)
    

当我选择安全字段时,它不建议使用强密码。

编辑:

在下面的进一步测试和 cmets 之后,我添加了一个关联的域并将以下 Web 凭据文件上传到我的网络服务器,位于 example.com/.well-known/apple-app-site-association.txt:


        "webcredentials": 
                "apps": [ " TEAMID.com.example.AppName" ]
        

我目前的功能是将关联域和自动填充凭据提供程序设置为 YES。

当我尝试使用强密码时,我收到以下错误消息:

无法显示 app bundleID 的自动强密码: com.example.AppName 由于错误:无法识别调用应用程序的 过程。检查应用程序中的 teamID 和 bundleID 应用程序标识符权利

不知道从这里去哪里。

【问题讨论】:

我正在处理确切的问题。我还在设置关联的域,现在使用这篇文章中的代码,我得到了一个自动填充选项,即使它是两个标记为 newPassword 的安全字段。您是否设置了关联域或试图在没有它的情况下完成这项工作? 这里也是一个相关问题:***.com/q/64839212/408286 如果我理解正确,您希望 SwiftUI 在字段中显示一个新的密码建议,但它不起作用,也许我可以通过这种方式帮助您,我们使用自定义方式制作密码建议。 @mota 我正在尝试不使用关联域,直到阅读您的评论才知道。我需要关联的域来完成这项工作吗?文档不是很详细,但没有提及相关域。 @alionthego 我认为需要关联域,因此 Keychain 知道要存储此密码的网站是什么,否则建议使用强密码而不将其保存在某处会很奇怪。问题是很难知道关联域设置是否正确,我认为这就是我的问题所在,也可能是您的问题所在。请参阅以下 WWDC 演讲,他们解释了这是如何工作的:developer.apple.com/videos/play/wwdc2017/206developer.apple.com/videos/play/wwdc2018/204 【参考方案1】:

如果您想建议新密码,则需要使用.newPassword 文本内容类型。

.password 用于输入现有密码。

【讨论】:

对不起。我已经更新了帖子。我已经放了 .newPassword 但不工作。想知道是否其他人也有同样的问题。在模拟器和设备上。 是的。我在 Xcode 13.2 和 ios 15.2 中运行我的应用程序,我面临同样的问题。用于查看已保存密码的登录过程按预期工作。表示关联域配置良好。但是,当我在注册视图中使用 SecureField (SwiftUI) 在 TextContentType 中使用 .newPassword 时,键盘不会显示应有的“密码”标题。

以上是关于SecureField 的 .newPassword 选择强密码不使用 SwiftUI 和 iOS14的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 在禁用的 SecureField 中检测水龙头?

SecureField 的 .newPassword 选择强密码不使用 SwiftUI 和 iOS14

在 SwiftUI 视图中的 TextField 后面使用多个 SecureField 时的奇怪行为

SwiftUI SecureField:如何实现与 UIKit 中相同的字符模糊行为?

在 SwiftUI 中向 TextField/SecureField 添加图像,向占位符文本添加填充

6-22日学习记录