【发布时间】:2019-12-03 17:11:50
【问题描述】:
我是一个初学者,我已经创建了我的应用程序,但我想检查用户是否在安装后第一次打开应用程序,我见过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,
)),
],
),
);
}
}
【问题讨论】:
-
您链接的答案实际上很好地解释了它。你需要了解
SharedPreferences。SharedPreferences是您的应用程序的本地存储,您可以在其中保存少量的简单数据。在您的情况下,如果用户已经打开您的应用程序,您可以使用它来存储信息。您可以在每次应用启动时检查此信息。如果信息不存在,您的用户将首次打开它。然后,您可以保存一个值并将他发送到欢迎屏幕。
标签: flutter dart launch launching-application