首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码AutoFill保存密码SwiftUI

密码AutoFill保存密码SwiftUI
EN

Stack Overflow用户
提问于 2020-04-15 12:58:45
回答 1查看 2.4K关注 0票数 8

日安。

我正在尝试在SwiftUI中实现一个登录页面,但我想不出如何让应用程序在成功登录后提示用户保存他们的凭据。

这是输入字段的代码。

代码语言:javascript
复制
        TextField("Phone number", text: $phoneNumber)
            .keyboardType(.numbersAndPunctuation)
            .textContentType(.username)

        SecureField("Password", text: $password)
            .keyboardType(.asciiCapable)
            .textContentType(.password)

成功后,环境变量将发生更改,父组件将停止呈现登录页面。

我启用了“自动填充凭据提供程序”权限。

我试图实现的是在iOS,自填中使用本机“密码管理器”。

当用户提交他们的凭据并成功地进行身份验证时,应该像上面那样显示一个提示符,询问他们是否想保存他们用来登录的密码。

EN

回答 1

Stack Overflow用户

发布于 2022-07-09 12:02:00

密码自动填充的问题不是UIKit/SwiftUI实现。要在应用程序中获得支持,最重要的事情是:

  1. 将“关联域”功能添加到您的应用程序中,并将“域”设置为webcredentials:example.com (将example.com替换为您实际拥有和访问的域!)
  2. 在您的网站上(在给定域下可访问),将名为apple-app-site-association的文件放置到.well-known文件夹中的公共可访问根目录中。 可以使用命令curl https://www.example.com/.well-known/apple-app-site-association测试访问。(是的,必须启用HTTPS并拥有有效的证书!)
  3. apple-app-site-association的内容必须引用Apple和应用程序的bundle标识符,如下所示(Team为"A1BC23REUG“,bundle标识符为”com.example.signin-游乐场“)
代码语言:javascript
复制
{
  "webcredentials": {
    "apps": [ 
      "A1BC23REUG.com.example.signin-playground"
    ]
  }
}
  1. 使用适当的SwiftUI修饰符标记textContentType中的输入字段。

我用这个要旨编写了一个小示例,并成功地进行了测试。

如果自动填充无法工作(例如,您只获得一个非特定的密码完成对话框),则通常必须检查包/团队标识符和apple-app-site-association文件中的标识符。如果您最近更改了文件中的某些内容,则可能是将内容缓存在您的设备上(因此您可以删除应用程序并重新安装它),或者将其缓存在Apples网络中(在这种情况下,您可以以记录在这里的形式激活另一种模式)

如果没有出现“是否希望保存此密码”对话框,则要么没有正确设置“关联域”,要么iOS启发式没有检测到屏幕中的相关更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61229358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档