diff --git a/lib/data/provider/user.dart b/lib/data/provider/user.dart index c818133..166d4d2 100644 --- a/lib/data/provider/user.dart +++ b/lib/data/provider/user.dart @@ -5,11 +5,11 @@ import 'package:news_getx/utils/http.dart'; class UserAPI { /// 登录 static Future login(UserLoginRequest? data) async { - UserLoginResponse response = await HttpUtil().post( + var response = await HttpUtil().post( "/user/login", data: data?.toJson(), ); - return response; + return UserLoginResponse.fromJson(response); } /// 注册 diff --git a/lib/global.dart b/lib/global.dart new file mode 100644 index 0000000..30dac56 --- /dev/null +++ b/lib/global.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; +import 'package:news_getx/data/services/config.dart'; +import 'package:news_getx/data/services/storage.dart'; +import 'package:news_getx/data/services/user.dart'; +import 'package:news_getx/utils/loading.dart'; + +/// 全局静态数据 +class Global { + /// 初始化 + static Future init() async { + WidgetsFlutterBinding.ensureInitialized(); + await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); + + setSystemUi(); + Loading(); + + await Get.putAsync(() => StorageService().init()); + + Get.put(ConfigService()); + Get.put(UserService()); + } + + static void setSystemUi() { + if (GetPlatform.isAndroid) { + SystemUiOverlayStyle systemUiOverlayStyle = SystemUiOverlayStyle( + statusBarColor: Colors.transparent, + statusBarBrightness: Brightness.light, + statusBarIconBrightness: Brightness.dark, + systemNavigationBarDividerColor: Colors.transparent, + systemNavigationBarColor: Colors.white, + systemNavigationBarIconBrightness: Brightness.dark, + ); + SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle); + } + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 64c53a3..583c277 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,12 +2,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:news_getx/global.dart'; import 'package:news_getx/routes/app_pages.dart'; import 'package:news_getx/theme/app_theme.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; - -void main() { +Future main() async { + await Global.init(); runApp(const MyApp()); } @@ -29,15 +30,12 @@ class MyApp extends StatelessWidget { headerTriggerDistance: 80, maxOverScrollExtent: 100, footerTriggerDistance: 150, - child: GetMaterialApp( title: 'News', debugShowCheckedModeBanner: false, theme: AppTheme.light, - initialRoute: AppRoutes.Initial, getPages: AppPages.pages, - builder: EasyLoading.init(), ), );