У меня есть форма регистрации со следующими полями ввода:
Имя домена Пароль электронной почты
Я бы хотел добиться следующего процесса:
Пользователь введите в бизнес-домене, введите адрес электронной почты, подключенный к домену и пароль.
Каков наилучший способ проверки приложения в фоновом режиме, если домен отправляет обратно код 200 для обеспечения проверки? Кто-нибудь из вас, опытных программистов, может посоветовать мне?
Я экспериментировал с "http 0.12.0 + 4" на pub.dev, но он не был создан именно для того, чего я хочу достичь.
import 'package:easybeezzy/screens/login_screen.dart';
import 'package:flutter/material.dart';
class SignupScreen extends StatefulWidget {
static final String id = 'signup_screen';
@override
_SignupScreenState createState() => _SignupScreenState();
}
class _SignupScreenState extends State<SignupScreen> {
final _formKey = GlobalKey<FormState>();
String _name, _email, _password, _domain;
_submit() {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
print(_name);
print(_domain);
print(_email);
print(_password);
//Logging in the User with Firebase
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text(
'Easy Beezy',
style: TextStyle(
fontSize: 50.0,
fontFamily: 'PlayfairDisplay',
),
),
Form(
key: _formKey,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Padding(
padding: EdgeInsets.symmetric(
horizontal: 30.0,
vertical: 10.0,
),
child: TextFormField(
decoration: InputDecoration(labelText: 'Domain'),
validator: (input) => input.length < 3
? 'Please enter a valid Domain'
: null,
onSaved: (input) => _domain = input,
),
),
Padding(
padding: EdgeInsets.symmetric(
horizontal: 30.0,
vertical: 10.0,
),
child: TextFormField(
decoration: InputDecoration(labelText: 'Name'),
validator: (input) => input.trim().isEmpty
? 'Please enter a valid name'
: null,
onSaved: (input) => _name = input,
),
),
Padding(
padding: EdgeInsets.symmetric(
horizontal: 30.0, vertical: 10.0),
child: TextFormField(
decoration: InputDecoration(labelText: 'Email'),
validator: (input) => !input.contains('@')
? 'Please enter a valid email, must be connected to the DOMAIN.'
: null,
onSaved: (input) => _email = input,
),
),
Padding(
padding: EdgeInsets.symmetric(
horizontal: 30.0,
vertical: 10.0,
),
child: TextFormField(
decoration: InputDecoration(labelText: 'Password'),
validator: (input) => input.length < 6
? 'Must be at least six characters'
: null,
onSaved: (input) => _password = input,
obscureText: true,
),
),
SizedBox(height: 20.0),
Container(
width: 250.0,
child: FlatButton(
onPressed: _submit,
color: Colors.amberAccent,
padding: EdgeInsets.all(10.0),
child: Text(
'Sign Up',
style: TextStyle(
fontSize: 20.0, color: Colors.black54),
),
),
),
SizedBox(
height: 20.0,
),
Container(
width: 250.0,
child: FlatButton(
onPressed: () => Navigator.pop(context),
color: Colors.blueAccent,
padding: EdgeInsets.all(10.0),
child: Text(
'Back to login',
style:
TextStyle(fontSize: 20.0, color: Colors.white),
),
),
),
],
),
),
],
),
),
),
),
);
}
}
Большое спасибо за ваше время, если вам нужна дополнительная информация о моем проекте, дайте мне знать, чтобы я мог предоставить ее вам. Вы не будете забыты, когда приложение будет готово к тестированию.
Надеюсь, я чему-то научусь у настоящих профессионалов.