dar*_*ekm 6 flutter flutter-web
这段代码以前似乎可以工作,但是现在我无法让网络上的自动填充工作。Chrome 会在网址栏上显示一个小键,让用户保存密码(尽管没有大的保存密码弹出窗口),但它对重新访问页面没有任何影响。
代码:
class LoginPage extends StatefulWidget {
@override
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
final userNameController = TextEditingController();
final passController = TextEditingController();
String errorText = '';
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: AutofillGroup(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
loginPageTextField('Username', userNameController),
SizedBox(height: 20),
loginPageTextField('Password', passController, isPassword: true),
SizedBox(height: 10),
Container(
child: Padding(
padding: const EdgeInsets.all(15.0),
child: Text(errorText,
style: TextStyle(fontSize: 12, color: Colors.red)),
),
),
ElevatedButton(
child: Text('Log in',
style: TextStyle(fontWeight: FontWeight.bold)),
onPressed: () async {
(...))
},
)
],
),
),
),
);
}
Container loginPageTextField(
String placeholder, TextEditingController controller,
{bool isPassword = false}) {
return Container(
width: 220,
height: 40,
child: TextField(
keyboardType:
(isPassword) ? TextInputType.text : TextInputType.name,
onEditingComplete: (isPassword)
? () {
TextInput.finishAutofillContext();
}
: () {},
autofillHints:
isPassword ? [AutofillHints.password] : [AutofillHints.username],
obscureText: isPassword ? true : false,
textAlignVertical: TextAlignVertical.center,
style: TextStyle(fontSize: 13),
textAlign: TextAlign.center,
decoration: _textFieldStyle(placeholder),
controller: controller),
);
}
}
Run Code Online (Sandbox Code Playgroud)
最有趣的是我可以发誓它以前有效。当用户指出无法保存凭据时才意识到事实并非如此。尝试过的事情:
AutofillHints.newPassword而不是.password在传球场上似乎没有任何效果 - 未显示“保存密码”弹出窗口,并且在访问该页面时未填写/建议登录详细信息。浏览器确认凭据的唯一方式是 Chrome 网址栏上的小键。
请帮忙!
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |