main.dart 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import 'package:flutter_localizations/flutter_localizations.dart';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:flutter/services.dart';
  4. import 'package:jpush_flutter/jpush_flutter.dart';
  5. import 'package:redux/redux.dart';
  6. import 'package:flutter/material.dart';
  7. import 'package:flutter_redux/flutter_redux.dart';
  8. import 'package:shared_preferences/shared_preferences.dart';
  9. import './Localizations.dart';
  10. import 'model/UserInfo.dart';
  11. import 'net/HttpManager.dart';
  12. import 'net/Result.dart';
  13. import 'pages/HomePage.dart';
  14. import 'pages/loginFirst.dart';
  15. import 'redux/AppState.dart';
  16. class MobileCyberGamesApp extends StatelessWidget {
  17. const MobileCyberGamesApp(this.store);
  18. final Store<AppState> store;
  19. @override
  20. Widget build(BuildContext context) {
  21. return StoreProvider<AppState>(
  22. store: store,
  23. child: MaterialApp(
  24. title: '猿人电竞',
  25. supportedLocales: [
  26. const Locale('en'), // English
  27. const Locale('zh'), // China
  28. ],
  29. localizationsDelegates: [
  30. GlobalMaterialLocalizations.delegate,
  31. GlobalWidgetsLocalizations.delegate,
  32. ChineseCupertinoLocalizations.delegate,
  33. ],
  34. theme: ThemeData(
  35. cardColor: Color(0xFF2B2B42),
  36. backgroundColor: Color(0xFF222335),
  37. primaryColor: Color(0xFFF4B011),
  38. buttonColor: Color(0xFFF4B011),
  39. accentColor: Color(0xFFF4B011),
  40. textSelectionColor: Colors.white,
  41. textTheme: TextTheme(
  42. subhead: TextStyle(color: Colors.white),
  43. title:TextStyle(color: Colors.white),
  44. ),
  45. primaryTextTheme:TextTheme(
  46. title:TextStyle(color: Colors.white),
  47. ),
  48. primaryIconTheme:IconThemeData(color: Colors.white),
  49. buttonTheme: ButtonThemeData(
  50. buttonColor: Color(0xFFF4B011),
  51. highlightColor: Color(0xFFF2A433),
  52. splashColor: Color(0xFFF2A433),
  53. shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(0))),
  54. )),
  55. home: store.state.userInfo != null ? HomePage() : LoginFirst(),
  56. routes: {'/home': (BuildContext context) => HomePage()},
  57. ),
  58. );
  59. }
  60. }
  61. Future<void> main() async {
  62. SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light.copyWith(
  63. statusBarColor: Colors.transparent,
  64. ));
  65. await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
  66. final JPush jpush = JPush();
  67. jpush.setup(
  68. appKey: '868cc9036e14c71e2b698f46',
  69. channel: 'theChannel',
  70. production: true,
  71. debug: true,
  72. );
  73. jpush.applyPushAuthority(NotificationSettingsIOS(sound: true, alert: true, badge: true));
  74. final prefs = await SharedPreferences.getInstance();
  75. print(prefs.getString('token'));
  76. HttpManager.token = prefs.getString('token') ?? '';
  77. Result result = await HttpManager.get('userInfo/getUserInfo');
  78. AppState state = AppState.empty();
  79. if (result.success && result.data != null) {
  80. UserInfo userInfo = UserInfo.fromJson(result.data);
  81. state.userInfo = userInfo;
  82. // jpush.setAlias(userInfo.id.toString()).then((map) {});
  83. }
  84. Store<AppState> store = Store<AppState>(appReducer, initialState: state);
  85. runApp(MobileCyberGamesApp(store));
  86. }