61 lines
1.6 KiB
Dart
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);
|
|
}
|
|
}
|