iOS 12 中的自动填充用户名和密码
AutoFill username and password in iOS 12
我在 iOS 11 中成功地为存储的用户名和密码建议实现了自动填充。
我的登录视图控制器中有两个文本字段,一个用于电子邮件,一个用于密码。内容类型定义如下:
电子邮件/用户名文本字段配置
密码文本字段配置
这曾经在 iOS 11 中工作得很好,但是在将我的开发 iPad 升级到 iOS 12 之后,该应用程序会建议用户名字段的电子邮件,并且以下情况会发生编辑密码字段:
在我的创建帐户视图控制器中,我有 3 个文本字段:电子邮件、密码、重复密码。他们的内容模式设置如下:
- 电子邮件 → 电子邮件地址
- 密码→新密码,规则:
minlength:8;
- 重复密码→新密码,规则:
minlength:8;
编辑电子邮件地址字段时,它会正确建议一个电子邮件地址。但是,对于密码和重复密码字段,它会建议存储的密码,而不是建议新密码。
我试过的
- (不合逻辑)翻转内容模式设置,因此登录密码字段设置为
new password
,创建帐户密码字段设置为 password
- 没有成功;事实上,行为完全没有改变
- 将登录内容模式设置为
none
并创建帐户字段,以便自动填充可以尝试自动处理
- 没有成功;事实上,行为完全没有改变
备注
- 自动填充已在服务器上正确设置。创建帐户字段中建议的存储密码证明
- 该功能仍在 iOS 11 iPads
上运行
- 当使用新用户名登录时,应用程序会要求用户将此用户名和密码添加到钥匙串,即使在 iOS 12
知道我需要更改什么以便存储的用户名和密码建议再次在 iOS 12 中工作吗?
谢谢!
编辑
根据下面@kralex 的要求,这是故事板中登录视图控制器的视图层次结构:
...在设备上:
Apple 正在做一些试探法以最好地猜测您可能需要什么:自动填充或新密码。但是在某些情况下它可能会失败。
在您的情况下,问题与 "Create Account Button" 有关。它让系统认为这是一个注册表单。
最简单的修复方法:用 UILabel 替换注册 UIButton 并添加 tapRecognizer 来处理点击。
我遇到了类似的问题,发现 Apple 的启发式方法正在窃听视图控制器的 class 名称 以确定是建议新密码还是使用一个现有的。似乎即使我在 UITextField
上设置了正确的 textContentType
,它仍然会使用控制器的名称。
我的UIViewController
在同一屏幕上同时注册和登录,但控制器名为RegistrationViewController
。我把它改成LoginViewController
来测试,发现登录部分开始工作了,但是注册位就像登录一样!即使设置了正确的 textContentType
s!
我不得不重命名我的 UIViewController
一些东西,这并不意味着要注册或登录才能真正尊重我的 textContentType
。太可怕了。真恶心。
我想至少部分原因 is/was 发生在你身上是因为你有单词 Welcome
作为你的视图控制器的开头,听起来令人难以置信。
顺便说一句,我尝试了RegistrationLoginViewController
(它选择了注册设置)和LoginRegistrationViewController
(它选择了登录设置),但都没有用。如果你想在同一个控制器上同时使用,它必须避免 Apple 的启发式方法。
我在 iOS 11 中成功地为存储的用户名和密码建议实现了自动填充。
我的登录视图控制器中有两个文本字段,一个用于电子邮件,一个用于密码。内容类型定义如下:
电子邮件/用户名文本字段配置
密码文本字段配置
这曾经在 iOS 11 中工作得很好,但是在将我的开发 iPad 升级到 iOS 12 之后,该应用程序会建议用户名字段的电子邮件,并且以下情况会发生编辑密码字段:
在我的创建帐户视图控制器中,我有 3 个文本字段:电子邮件、密码、重复密码。他们的内容模式设置如下:
- 电子邮件 → 电子邮件地址
- 密码→新密码,规则:
minlength:8;
- 重复密码→新密码,规则:
minlength:8;
编辑电子邮件地址字段时,它会正确建议一个电子邮件地址。但是,对于密码和重复密码字段,它会建议存储的密码,而不是建议新密码。
我试过的
- (不合逻辑)翻转内容模式设置,因此登录密码字段设置为
new password
,创建帐户密码字段设置为password
- 没有成功;事实上,行为完全没有改变
- 将登录内容模式设置为
none
并创建帐户字段,以便自动填充可以尝试自动处理- 没有成功;事实上,行为完全没有改变
备注
- 自动填充已在服务器上正确设置。创建帐户字段中建议的存储密码证明
- 该功能仍在 iOS 11 iPads 上运行
- 当使用新用户名登录时,应用程序会要求用户将此用户名和密码添加到钥匙串,即使在 iOS 12
知道我需要更改什么以便存储的用户名和密码建议再次在 iOS 12 中工作吗?
谢谢!
编辑
根据下面@kralex 的要求,这是故事板中登录视图控制器的视图层次结构:
...在设备上:
Apple 正在做一些试探法以最好地猜测您可能需要什么:自动填充或新密码。但是在某些情况下它可能会失败。
在您的情况下,问题与 "Create Account Button" 有关。它让系统认为这是一个注册表单。
最简单的修复方法:用 UILabel 替换注册 UIButton 并添加 tapRecognizer 来处理点击。
我遇到了类似的问题,发现 Apple 的启发式方法正在窃听视图控制器的 class 名称 以确定是建议新密码还是使用一个现有的。似乎即使我在 UITextField
上设置了正确的 textContentType
,它仍然会使用控制器的名称。
我的UIViewController
在同一屏幕上同时注册和登录,但控制器名为RegistrationViewController
。我把它改成LoginViewController
来测试,发现登录部分开始工作了,但是注册位就像登录一样!即使设置了正确的 textContentType
s!
我不得不重命名我的 UIViewController
一些东西,这并不意味着要注册或登录才能真正尊重我的 textContentType
。太可怕了。真恶心。
我想至少部分原因 is/was 发生在你身上是因为你有单词 Welcome
作为你的视图控制器的开头,听起来令人难以置信。
顺便说一句,我尝试了RegistrationLoginViewController
(它选择了注册设置)和LoginRegistrationViewController
(它选择了登录设置),但都没有用。如果你想在同一个控制器上同时使用,它必须避免 Apple 的启发式方法。