我是一个初学者在一个Flutter,我已经创建了我的应用程序,但我想检查如果用户打开应用程序后第一次安装,我已经看到this article但不知道如何?
这是启动屏幕代码,代码在3秒后将用户直接移动到主屏幕,但我想检查用户是否首次打开应用程序并将用户移动到欢迎屏幕,或者如果用户不是首次打开应用程序并将用户移动到主屏幕。
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:book_pen/main.dart';
import 'package:book_pen/Welcome.dart';
void main() {
runApp(new MaterialApp(
home: new SplashScreen(),
routes: <String, WidgetBuilder>{
'/HomePage': (BuildContext context) => new HomePage(),
'/WelcomePage': (BuildContext context) => new WelcomePage()
},
));
}
class SplashScreen extends StatefulWidget {
@override
_SplashScreenState createState() => new _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
startTime() async {
var _duration = new Duration(seconds: 3);
return new Timer(_duration, navigationPageHome);
}
void navigationPageHome() {
Navigator.of(context).pushReplacementNamed('/HomePage');
}
void navigationPageWel() {
Navigator.of(context).pushReplacementNamed('/WelcomePage');
}
@override
void initState() {
super.initState();
startTime();
}
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
return Scaffold(
body: Stack(
children: <Widget>[
Center(
child: new Image.asset(
'assets/images/SplashBack.jpg',
width: size.width,
height: size.height,
fit: BoxFit.fill,
),
),
Center(
child: new Image.asset(
'assets/images/BigPurppleSecSh.png',
height: 150,
width: 300,
)),
],
),
);
}
}
4条答案
按热度按时间9njqaruj1#
@Abdullrahman,请按照别人的建议使用
shared_preferences
,下面是你可以做到这一点的方法,pubspec.yaml
中的shared_preferences包并运行Packages get
:希望这个有用。
yhxst69z2#
您可以在用户第一次输入时使用https://pub.dev/packages/shared_preferences添加值
brgchamk3#
使用is_first_run包就更简单了,您只需执行以下操作:
如果应用是首次启动,则返回
true
。2guxujil4#
你可以在首次启动或安装应用时设置布尔值。首次启动或安装应用后,将其设置为true。默认值应为false。将其设置为true后,你必须将其保存在本地存储的shared_preference中。此后,每次重新启动应用时,读取shared_preference值。该值应始终为true,除非你对其进行更改。watch the video here