初始化service

This commit is contained in:
胡天 2023-07-18 13:06:54 +08:00
parent de74c4c2a2
commit 756108fb8d
3 changed files with 43 additions and 7 deletions

View File

@ -5,11 +5,11 @@ import 'package:news_getx/utils/http.dart';
class UserAPI { class UserAPI {
/// ///
static Future<UserLoginResponse> login(UserLoginRequest? data) async { static Future<UserLoginResponse> login(UserLoginRequest? data) async {
UserLoginResponse response = await HttpUtil().post( var response = await HttpUtil().post(
"/user/login", "/user/login",
data: data?.toJson(), data: data?.toJson(),
); );
return response; return UserLoginResponse.fromJson(response);
} }
/// ///

38
lib/global.dart Normal file
View File

@ -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>(() => StorageService().init());
Get.put<ConfigService>(ConfigService());
Get.put<UserService>(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);
}
}
}

View File

@ -2,12 +2,13 @@ import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:news_getx/global.dart';
import 'package:news_getx/routes/app_pages.dart'; import 'package:news_getx/routes/app_pages.dart';
import 'package:news_getx/theme/app_theme.dart'; import 'package:news_getx/theme/app_theme.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart';
Future<void> main() async {
void main() { await Global.init();
runApp(const MyApp()); runApp(const MyApp());
} }
@ -29,15 +30,12 @@ class MyApp extends StatelessWidget {
headerTriggerDistance: 80, headerTriggerDistance: 80,
maxOverScrollExtent: 100, maxOverScrollExtent: 100,
footerTriggerDistance: 150, footerTriggerDistance: 150,
child: GetMaterialApp( child: GetMaterialApp(
title: 'News', title: 'News',
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
theme: AppTheme.light, theme: AppTheme.light,
initialRoute: AppRoutes.Initial, initialRoute: AppRoutes.Initial,
getPages: AppPages.pages, getPages: AppPages.pages,
builder: EasyLoading.init(), builder: EasyLoading.init(),
), ),
); );