部分登录

This commit is contained in:
GYJ
2024-11-23 18:38:13 +08:00
parent 0f3e728a79
commit b84d8477c0
7 changed files with 352 additions and 4 deletions

View File

@@ -1,10 +1,57 @@
import 'package:cashier_reserve/login/login_view.dart';
import 'package:flutter/services.dart';
import '../base/ui.dart';
import '../channel/channel_event.dart';
import '../utils/func_tools.dart';
import 'hive_manager.dart';
class AppManager {
static BuildContext? globalContext;
static bool _isAlertLogin = false;
static Future<void> initThirdPackage() async {
MyEventChannel.startListener();
await HiveManager.initHive();
}
}
static void setGlobalContext(BuildContext context) {
globalContext = context;
}
static bool isLogin() {
String token = HiveManager.getUserToken();
if (isEmptyString(token)) {
gotoLogin();
return false;
}
return true;
}
static void gotoLogin() {
if (_isAlertLogin) {
return;
}
_isAlertLogin = true;
while (Navigator.of(globalContext!).canPop()) {
Navigator.of(globalContext!).pop();
}
showDialog(
context: globalContext!,
barrierDismissible: false,
builder: (BuildContext context) {
return WillPopScope(
onWillPop: () => Future.value(false), child: const LoginView());
});
}
static void disposeLoginWidget() {
_isAlertLogin = false;
}
static bool isShowLoginView() {
return _isAlertLogin;
}
}

View File

@@ -0,0 +1,17 @@
import 'package:hive/hive.dart';
import 'package:path_provider/path_provider.dart';
class HiveManager {
static Box? _userInfoBox;
static Future<void> initHive() async {
final dir = await getApplicationDocumentsDirectory();
Hive.defaultDirectory = dir.path;
_userInfoBox = Hive.box();
}
static String getUserToken() {
return _userInfoBox?.get('token') ?? '';
}
}