Flutter:密码自动填充

时间:2019-04-11 13:29:06

标签: dart flutter autofill

我正在寻找一种在登录表单中启用密码文本字段自动填充的方法

作为备份解决方案,我正在考虑将密码保存在安全存储中,然后使用生物识别技术在执行新登录时恢复相同的密码。

但这不会涵盖iOS 12的所有自动填充密码体验。 例如,密码不会在多个设备上保存。

有什么提示吗?

3 个答案:

答案 0 :(得分:27)

Flutter现在支持自动填充(密码,电子邮件,用户名等)。☑️合并的合并请求,例如:https://github.com/flutter/flutter/pull/52126

示例:

 @override
  Widget build(BuildContext context) {
    return AutofillGroup(
      child: Column(
        children: <Widget>[
          TextField(controller: username, autofillHints: [AutofillHints.username]),
          Checkbox(
            value: isNewUser,
            onChanged: (bool newValue) {
              setState(() { isNewUser = newValue; });
            },
          ),
          if (isNewUser) TextField(controller: newPassword, autofillHints: [AutofillHints.newPassword]),
          if (isNewUser) TextField(controller: repeatNewPassword, autofillHints: [AutofillHints.newPassword]),
          if (!isNewUser) TextField(controller: password, autofillHints: [AutofillHints.password]),
        ],
      ),
    );
  }

您可能需要切换到devmaster频道(flutter channel master)。

答案 1 :(得分:2)

开箱即用时尚不支持自动填充。我知道有两个问题正在跟踪此问题(尽管与android相关)。您可能要订阅/投票:

我担心通过第三方插件触发此功能并不容易。

关于安全存储的问题:如果您使用的flutter secure storage plugin在iOS上使用了钥匙串,则应该通过iCloud在设备之间进行同步。

答案 2 :(得分:0)

我在同一页面上对电子邮件输入和密码输入进行了自动填充。自动填充仅显示在密码字段中。

我必须将 TextField 包装在 AutoFillGroup 中,以便它们同时显示!