Files
flutter-jdt-store/lib/global.dart
2023-12-22 23:27:14 +08:00

61 lines
1.6 KiB
Dart

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import './utils/utils.dart';
class Global {
static String appName = "Flutter Demo";
// 是否 release
static bool get isRelease => const bool.fromEnvironment("dart.vm.product");
static String tokenKey = "token";
static String firstOpenKey = "device_first_open";
// 全局路由观察者
static RouteObserver<Route> routeObserver = RouteObserver();
/// 是否第一次打开
static bool? isFirstOpen;
/// 是否离线登录
static bool isOfflineLogin = true;
static Future init() async {
// 运行初始
WidgetsFlutterBinding.ensureInitialized();
// 本地存储初始化
await StorageUtil().init();
// 网络请求初始化
Request.init();
// 读取设备第一次打开
isFirstOpen = StorageUtil().getBool(firstOpenKey);
var token = StorageUtil().getString(tokenKey);
if (!ToolFn.isBlank(token)) {
isOfflineLogin = false;
}
// android 状态栏为透明的沉浸
if (Platform.isAndroid) {
SystemUiOverlayStyle systemUiOverlayStyle = const SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
}
// 保存用户已打开APP
static saveAlreadyOpen() {
StorageUtil().putBool(firstOpenKey, false);
}
// 保存token
static saveUserToken(String token) async {
StorageUtil().putJSON(tokenKey, token);
isOfflineLogin = ToolFn.isBlank(token);
}
}