main.dart 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import 'package:flutter/services.dart';
  2. import 'package:redux/redux.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter_redux/flutter_redux.dart';
  5. import 'package:shared_preferences/shared_preferences.dart';
  6. import 'redux/AppState.dart';
  7. import 'pages/HomePage.dart';
  8. import 'net/HttpManager.dart';
  9. import 'model/UserInfo.dart';
  10. import 'net/Result.dart';
  11. import 'pages/loginFirst.dart';
  12. class MobileCyberGamesApp extends StatelessWidget {
  13. final Store<AppState> store;
  14. MobileCyberGamesApp(this.store);
  15. @override
  16. Widget build(BuildContext context) {
  17. return StoreProvider(
  18. store: this.store,
  19. child: new MaterialApp(
  20. title: '全民电竞',
  21. theme: ThemeData(
  22. cardColor: Color(0xFF2B2B42),
  23. backgroundColor: Color(0xFF222335),
  24. primaryColor: Color(0xFFC2524D),
  25. buttonColor: Color(0xFFC2524D),
  26. highlightColor: Color(0xFF933E3E),
  27. accentColor: Color(0xFFC2524D),
  28. textSelectionColor: Colors.white,
  29. textTheme: TextTheme(
  30. subhead: TextStyle(color: Colors.white),
  31. )),
  32. home: store.state.isLogin ? HomePage() : LoginFirst(),
  33. ));
  34. }
  35. }
  36. void main() async {
  37. SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light.copyWith(
  38. statusBarColor: Colors.transparent,
  39. ));
  40. final prefs = await SharedPreferences.getInstance();
  41. print(prefs.getString('token'));
  42. HttpManager.token = prefs.getString('token') ??
  43. "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJkZWM2OTMxMy01Yjc3LTRlMTctOTcwOC0wYTZhM2JhZmZhM2EiLCJpc3MiOiJhZG1pbiIsImlhdCI6MTU1MTA3OTMzMCwic3ViIjoiODQ3MDMiLCJleHAiOjE1NTEzMzg1MzB9.6olL1T38rYRLBwKtTbFSI4cEMAbQf4iWVr1xXLObu8g";
  44. Result result = await HttpManager.get("userInfo/getUserInfo");
  45. AppState state = AppState.empty();
  46. if (result.success && result.data != null) {
  47. state.isLogin = true;
  48. UserInfo userInfo = UserInfo.fromJson(result.data);
  49. state.userInfo = userInfo;
  50. prefs.setString("token", result.token);
  51. } else {
  52. state.isLogin = false;
  53. }
  54. Store<AppState> store = Store<AppState>(appReducer, initialState: state);
  55. runApp(new MobileCyberGamesApp(store));
  56. }