Flutter iOS端登录表单Autofill仅邮箱字段生效密码字段失效问题咨询
解决方案
- 密码输入框必须显式添加
obscureText: true属性,iOS依赖该属性识别密码字段,缺失的情况下系统会将两个输入框都判定为普通文本框,自动填充内容只会填入第一个字段,修复后的示例代码如下:
AutofillGroup( child: Column( children: const [ TextField( key: Key('login_email_field'), autofillHints: [AutofillHints.email, AutofillHints.username], textInputAction: TextInputAction.next, ), TextField( key: Key('login_password_field'), autofillHints: [AutofillHints.password], textInputAction: TextInputAction.done, obscureText: true, ), ], ), )
- 给每个TextField添加唯一且稳定的
key属性,iOS自动填充依赖稳定的元素标识匹配对应字段,可避免识别错位 - 如果你使用的是Flutter 3.10及以上版本,可给两个TextField分别添加唯一的
autofillId属性,明确告知系统两个字段的区别,例如邮箱字段加autofillId: 'login_email',密码字段加autofillId: 'login_password' - 升级Flutter到最新稳定版测试,该问题属于iOS端AutofillGroup的已知历史问题,多数场景在3.13及以上版本已经被修复
- 如果以上配置都完成后问题仍然复现,可以在确认最小复现代码无误后向Flutter开发团队提交issue,提交时请附上你的Demo代码、iOS系统版本、Flutter版本信息
内容的提问来源于stack exchange,提问作者TmKVU
相关产品推荐
相关产品推荐

