5.4 仅首次显示欢迎

5.4 仅首次显示欢迎

实现步骤:


img

  1. APP 每次打开都会先到 Splash 界面
  2. 首次打开先去 Welcome 界面
  3. 以后直接去 Main 界面

第 1 步:定义常量

lib/common/values/constants.dart

1
static const storageFirstOpen = 'first_open'; // 首次打开

第 2 步:ConfigService 配置

lib/common/services/config.dart

1
2
3
4
5
6
7
// 是否首次打开
bool get isFirstOpen => Storage().getBool(Constants.storageFirstOpen);

// 标记已打开app
void setAlreadyOpen() {
Storage().setBool(Constants.storageFirstOpen, true);
}

第 3 步:控制器

lib/pages/system/welcome/controller.dart

1
2
3
4
5
6
7
@override
void onReady() {
super.onReady();
// 设置已打开
ConfigService().setAlreadyOpen();
_initData();
}

第 4 步:路由加入 main 定义

lib/common/routers/pages.dart

1
2
3
4
5
6
7
// 列表
static List<GetPage> list = [
// app 首页
GetPage(
name: RouteNames.main,
page: () => const MainPage(),
),

最后:Splash 类

lib/pages/system/splash/controller.dart

1
2
3
4
5
6
7
8
9
10
11
12
13
@override
void onReady() {
super.onReady();
// 删除设备启动图
FlutterNativeSplash.remove();

// 样式配置
if (ConfigService.to.isFirstOpen == false) {
Get.offAllNamed(RouteNames.systemWelcome);
} else {
Get.offAllNamed(RouteNames.main);
}
}

提交代码到 git