import 'package:flutter/material.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/login/login/app_get_version.dart'; import 'package:star_lock/login/login/starLock_login_page.dart'; import 'package:star_lock/login/login/starLock_login_xhj_page.dart'; import 'package:star_lock/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart'; import 'package:star_lock/mine/about/debug/debug_tool.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/appFirstEnterHandle.dart'; import 'package:star_lock/tools/customer_tool.dart'; import 'package:star_lock/tools/storage.dart'; import '../main/lockMian/lockMain/lockMain_page.dart'; class StarLockApplication extends StatefulWidget { const StarLockApplication({Key? key}) : super(key: key); @override State createState() => _StarLockApplicationState(); } class _StarLockApplicationState extends State { @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) async { bool? openDeBug = await Storage.getBool(isOpenDeBug); if (openDeBug == true) { DeBug.showFloatWidget(); } }); } @override Widget build(BuildContext context) { getAgreePrivacyShowUpdate(); return FutureBuilder( future: getLoginStatus(), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { // 如果异步操作尚未完成,返回一个加载指示器或其他等待状态的小部件 return const CircularProgressIndicator(); } else if (snapshot.hasData) { if (snapshot.data!) { // 如果用户已登录,返回主页面 getAppInfo(); return F.sw( skyCall: () => StarLockMainPage(), xhjCall: () => const StarLockMainXHJPage()); } else { // 如果用户未登录,返回登录页面 AppFirstEnterHandle().getAppFirstEnter(isAgreePrivacy); return F.sw( skyCall: () => const StarLockLoginPage(), xhjCall: () => const StarLockLoginXHJPage()); } } else { // 如果没有数据,返回一个空白的小部件 return F.sw( skyCall: () => const StarLockLoginPage(), xhjCall: () => const StarLockLoginXHJPage()); } }, ); } Future getLoginStatus() async { final data = await Storage.getString(saveUserLoginData); if (data != null && data.isNotEmpty) { return true; } return false; } Future getAgreePrivacyShowUpdate() async { final data = await Storage.getString(isAgreePrivacy); if (data == isAgreePrivacy) { AppFirstEnterHandle().getAppFirstEnter(isShowUpdateVersion); } } Future getAppInfo() async { final GetAppInfo entity = await ApiRepository.to.getAppInfo(); CustomerTool.init(entity.data?.wechatServiceUrl ?? ''); } }