如何检查用户是否首次打开我的应用(Flutter应用,飞镖代码)

我是flutter的初学者,我创建了我的应用程序,但是我想检查用户是否在安装后第一次打开该应用程序,我看过这篇文章但不知道该怎么做?

这是启动屏幕代码,该代码在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,

)),

],

),

);

}

}

回答:

@Abdullrahman,请shared_preferences按照他人的建议使用。这是你可以做到的

  • 依赖于shared_preferences包pubspec.yaml并运行Packages get

    dependencies:

    flutter:

    sdk: flutter

    shared_preferences: ^0.5.4+6

  • 导入包:

    import ‘package:shared_preferences/shared_preferences.dart’;

  • 实现它:

    class _SplashScreenState extends State {

    startTime() async {

    SharedPreferences prefs = await SharedPreferences.getInstance();

    bool firstTime = prefs.getBool(‘first_time’);

    var _duration = new Duration(seconds: 3);

    if (firstTime != null && !firstTime) {// Not first time

    return new Timer(_duration, navigationPageHome);

    } else {// First time

    prefs.setBool('first_time', false);

    return new Timer(_duration, navigationPageWel);

    }

    }

    void navigationPageHome() {

    Navigator.of(context).pushReplacementNamed(‘/HomePage’);

    }

    void navigationPageWel() {

    Navigator.of(context).pushReplacementNamed('/WelcomePage');

    }

    ........

如果用户清除缓存,则SharedPreferences数据将被删除。SharePreferences是一个本地选项。如果要防止这种情况,可以使用firestore来保存bool值,但是对于这样的简单任务,firestore可能会显得过分杀伤力。

希望这可以帮助。

以上是 如何检查用户是否首次打开我的应用(Flutter应用,飞镖代码) 的全部内容, 来源链接: utcz.com/qa/433040.html

回到顶部