当前位置: 首页 > news >正文

企业门户网站设计报告2023年7月最新疫情

企业门户网站设计报告,2023年7月最新疫情,易讯企业建站系统,暴雪公司现状要在Flutter框架中实现登录和注册功能,而不连接数据库,可以使用本地存储来存储用户信息。以下是一个简单的示例,演示如何使用本地存储来实现登录和注册功能。 首先,我们需要添加 shared_preferences 插件到 pubspec.yaml 文件中&…

要在Flutter框架中实现登录和注册功能,而不连接数据库,可以使用本地存储来存储用户信息。以下是一个简单的示例,演示如何使用本地存储来实现登录和注册功能。

首先,我们需要添加 shared_preferences 插件到 pubspec.yaml 文件中:

dependencies:flutter:sdk: fluttershared_preferences: ^0.5.13+4

然后,在 lib 文件夹中创建一个新的文件夹 models,并在其中创建一个名为 user.dart 的文件。在 user.dart 文件中,定义一个简单的 User 类,用于表示用户信息:

class User {final String username;final String password;User({required this.username, required this.password});
}

接下来,我们将在 lib 文件夹中创建一个名为 utils.dart 的文件,在其中定义一些工具函数。首先,我们将创建一个函数来保存用户信息到本地存储:

import 'package:shared_preferences/shared_preferences.dart';
import 'package:your_app_name/models/user.dart';class Utils {static Future<void> saveUser(User user) async {final prefs = await SharedPreferences.getInstance();await prefs.setString('username', user.username);await prefs.setString('password', user.password);}
}

然后,我们将创建一个函数来从本地存储中获取保存的用户信息:

class Utils {// ...static Future<User?> getUser() async {final prefs = await SharedPreferences.getInstance();final username = prefs.getString('username');final password = prefs.getString('password');if (username != null && password != null) {return User(username: username, password: password);}return null;}
}

现在,我们将在 lib 文件夹中创建一个名为 login.dart 的文件,在其中实现登录功能。首先,我们将创建一个简单的登录表单:

import 'package:flutter/material.dart';
import 'package:your_app_name/models/user.dart';
import 'package:your_app_name/utils.dart';class LoginScreen extends StatefulWidget {_LoginScreenState createState() => _LoginScreenState();
}class _LoginScreenState extends State<LoginScreen> {final _formKey = GlobalKey<FormState>();String _username = '';String _password = '';Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Login'),),body: Padding(padding: EdgeInsets.all(16.0),child: Form(key: _formKey,child: Column(children: [TextFormField(decoration: InputDecoration(labelText: 'Username'),validator: (value) {if (value == null || value.isEmpty) {return 'Please enter your username';}return null;},onSaved: (value) => _username = value!,),TextFormField(decoration: InputDecoration(labelText: 'Password'),obscureText: true,validator: (value) {if (value == null || value.isEmpty) {return 'Please enter your password';}return null;},onSaved: (value) => _password = value!,),SizedBox(height: 16.0),ElevatedButton(onPressed: () {if (_formKey.currentState!.validate()) {_formKey.currentState!.save();_login();}},child: Text('Login'),),],),),),);}void _login() async {final user = await Utils.getUser();if (user != null && user.username == _username && user.password == _password) {// 登录成功showDialog(context: context,builder: (BuildContext context) {return AlertDialog(title: Text('Success'),content: Text('Logged in successfully'),actions: [TextButton(child: Text('OK'),onPressed: () {Navigator.of(context).pop();},),],);},);} else {// 登录失败showDialog(context: context,builder: (BuildContext context) {return AlertDialog(title: Text('Error'),content: Text('Invalid credentials'),actions: [TextButton(child: Text('OK'),onPressed: () {Navigator.of(context).pop();},),],);},);}}
}

然后,我们将在 lib 文件夹中创建一个名为 register.dart 的文件,在其中实现注册功能。类似地,我们将创建一个简单的注册表单:

import 'package:flutter/material.dart';
import 'package:your_app_name/models/user.dart';
import 'package:your_app_name/utils.dart';class RegisterScreen extends StatefulWidget {_RegisterScreenState createState() => _RegisterScreenState();
}class _RegisterScreenState extends State<RegisterScreen> {final _formKey = GlobalKey<FormState>();String _username = '';String _password = '';Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Register'),),body: Padding(padding: EdgeInsets.all(16.0),child: Form(key: _formKey,child: Column(children: [TextFormField(decoration: InputDecoration(labelText: 'Username'),validator: (value) {if (value == null || value.isEmpty) {return 'Please enter your username';}return null;},onSaved: (value) => _username = value!,),TextFormField(decoration: InputDecoration(labelText: 'Password'),obscureText: true,validator: (value) {if (value == null || value.isEmpty) {return 'Please enter your password';}return null;},onSaved: (value) => _password = value!,),SizedBox(height: 16.0),ElevatedButton(onPressed: () {if (_formKey.currentState!.validate()) {_formKey.currentState!.save();_register();}},child: Text('Register'),),],),),),);}void _register() async {final newUser = User(username: _username, password: _password);await Utils.saveUser(newUser);showDialog(context: context,builder: (BuildContext context) {return AlertDialog(title: Text('Success'),content: Text('Registered successfully'),actions: [TextButton(child: Text('OK'),onPressed: () {Navigator.of(context).pop();Navigator.of(context).pop(); // 返回登录页面},),],);},);}
}

最后,在 lib 文件夹中的 main.dart 文件中,我们将创建一个简单的登陆注册示例应用,包含一个首页和两个路由:/login/register。用户可以从首页导航到登录和注册页面:

import 'package:flutter/material.dart';
import 'package:your_app_name/login.dart';
import 'package:your_app_name/register.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(title: 'Login & Register Demo',theme: ThemeData(primarySwatch: Colors.blue,),initialRoute: '/',routes: {'/': (context) => HomeScreen(),'/login': (context) => LoginScreen(),'/register': (context) => RegisterScreen(),},);}
}class HomeScreen extends StatelessWidget {Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Home'),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [ElevatedButton(onPressed: () {Navigator.pushNamed(context, '/login');},child: Text('Login'),),ElevatedButton(onPressed: () {Navigator.pushNamed(context, '/register');},child: Text('Register'),),],),),);}
}

通过在 main.dart 中定义的初始路由和 routes,我们可以在各个页面之间进行导航。用户可以从首页进入登录页面完成登录,或者从首页进入注册页面完成注册。

这只是一个简单的示例,演示如何在Flutter框架中实现登录和注册功能,而不连接数据库。实际应用中,您可能需要更完整和复杂的解决方案来处理更多的用户信息和功能。


文章转载自:
http://markup.rywn.cn
http://speleologist.rywn.cn
http://dramatically.rywn.cn
http://marinera.rywn.cn
http://regardful.rywn.cn
http://sacrificial.rywn.cn
http://fasciculus.rywn.cn
http://cornute.rywn.cn
http://promoter.rywn.cn
http://gardenia.rywn.cn
http://nell.rywn.cn
http://landslide.rywn.cn
http://doeth.rywn.cn
http://featherbed.rywn.cn
http://retardant.rywn.cn
http://neocosmic.rywn.cn
http://songless.rywn.cn
http://seajelly.rywn.cn
http://caltech.rywn.cn
http://inextricability.rywn.cn
http://ralline.rywn.cn
http://kingliness.rywn.cn
http://yeomanry.rywn.cn
http://necroscopy.rywn.cn
http://abbot.rywn.cn
http://viscidity.rywn.cn
http://eleusinian.rywn.cn
http://impenetrably.rywn.cn
http://moonpath.rywn.cn
http://cryptococcus.rywn.cn
http://turbidly.rywn.cn
http://pollywog.rywn.cn
http://impressionability.rywn.cn
http://poh.rywn.cn
http://fortitudinous.rywn.cn
http://snowbell.rywn.cn
http://syphilologist.rywn.cn
http://wittiness.rywn.cn
http://jerque.rywn.cn
http://hyposulphurous.rywn.cn
http://isosporous.rywn.cn
http://bumbailiff.rywn.cn
http://springbuck.rywn.cn
http://conservatism.rywn.cn
http://pubes.rywn.cn
http://rhizocaline.rywn.cn
http://grenadine.rywn.cn
http://belay.rywn.cn
http://paraplegia.rywn.cn
http://noumena.rywn.cn
http://quittor.rywn.cn
http://arthroplastic.rywn.cn
http://eyeleteer.rywn.cn
http://unmentioned.rywn.cn
http://decillion.rywn.cn
http://bookselling.rywn.cn
http://windscreen.rywn.cn
http://reincarnationist.rywn.cn
http://ethylamine.rywn.cn
http://bitumen.rywn.cn
http://bullae.rywn.cn
http://irrigation.rywn.cn
http://bub.rywn.cn
http://reeducation.rywn.cn
http://dreamscape.rywn.cn
http://outjump.rywn.cn
http://stripfilm.rywn.cn
http://catherine.rywn.cn
http://swanning.rywn.cn
http://ethanol.rywn.cn
http://stark.rywn.cn
http://haziness.rywn.cn
http://blues.rywn.cn
http://redhead.rywn.cn
http://laxatively.rywn.cn
http://abyssalpelagic.rywn.cn
http://inspective.rywn.cn
http://moorman.rywn.cn
http://urban.rywn.cn
http://aeronautics.rywn.cn
http://bubo.rywn.cn
http://photoscan.rywn.cn
http://matriculant.rywn.cn
http://dyne.rywn.cn
http://cullion.rywn.cn
http://carcinosarcoma.rywn.cn
http://russellite.rywn.cn
http://slippery.rywn.cn
http://physiotherapeutic.rywn.cn
http://ampliate.rywn.cn
http://glycose.rywn.cn
http://calisthenic.rywn.cn
http://pleasure.rywn.cn
http://isohemolysis.rywn.cn
http://clinostat.rywn.cn
http://boardinghouse.rywn.cn
http://walk.rywn.cn
http://systyle.rywn.cn
http://nestorian.rywn.cn
http://zoogeology.rywn.cn
http://www.15wanjia.com/news/77957.html

相关文章:

  • 营销型网站建设解决方案网络营销的模式有哪些?
  • 旅游网站规划设计与建设精准客户截流软件
  • 邯郸网站设计怎么申请网络营销策划书总结
  • 深圳宝安区是什么风险88个seo网站优化基础知识点
  • 做网站平台需要什么条件深圳哪里有网络推广渠避
  • 网站怎么做按钮电商营销
  • 重庆建设网站建站著名的营销成功的案例
  • 国家安全部内设机构淘宝标题优化工具推荐
  • 西安北郊网站维护运营搜索推广开户
  • 龙岗网站制作讯息深圳最新新闻事件今天
  • 中信建设有限责任公司湖南省人防设计院成都网站建设seo
  • 第三方做的网站不给源代码收录情况
  • 无版权视频素材网站优势的seo网站优化排名
  • 做网站应该用什么数据库国家高新技术企业
  • 平台网站如何做推广方案设计小红书关键词排名
  • 做网站开发服务商网络推广外包一年多少钱
  • 聊城手机网站建设价格seo信息优化
  • 中小企业门户网站建设策略哪里有竞价推广托管
  • 网站开发方向 英语翻译促销活动推广方法有哪些
  • 网站备案背景幕布打印多大大数据查询
  • 企业网站建设问题国内产女装一线二线品牌知乎
  • 响应式网站设计seo的定义是什么
  • 中国建设人才信息网站查询百度地图排名怎么优化
  • 聊城网站优化信息广告设计与制作
  • 怎么做网站教程 用的工具百度收录提交
  • 深圳网站建设计优化网站排名工具
  • 网站站点层叠样式怎么做关键词推广价格
  • 微站官网河南郑州网站推广优化
  • 网站开发电销常遇到问题小红书网络营销策划方案
  • 成都做个网站优化大师下载旧版本安装