main.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import 'package:redux/redux.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_redux/flutter_redux.dart';
  4. import 'package:shared_preferences/shared_preferences.dart';
  5. import 'redux/AppState.dart';
  6. import 'pages/HomePage.dart';
  7. import 'net/HttpManager.dart';
  8. import 'model/UserInfo.dart';
  9. import 'net/Result.dart';
  10. import 'pages/loginFirst.dart';
  11. class MobileCyberGamesApp extends StatelessWidget {
  12. final Store<AppState> store;
  13. MobileCyberGamesApp(this.store);
  14. @override
  15. Widget build(BuildContext context) {
  16. return StoreProvider(
  17. store: this.store,
  18. child: new MaterialApp(
  19. title: '全民电竞',
  20. home: store.state.isLogin ? HomePage() : LoginFirst(),
  21. ));
  22. }
  23. }
  24. void main() async {
  25. final prefs = await SharedPreferences.getInstance();
  26. HttpManager.token = prefs.getString('token') ??
  27. "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJkOWU0MDdhNy1iODU2LTQ0ZjAtYmM1Yy0yMGI4NmY4MWM4MTEiLCJpc3MiOiJhZG1pbiIsImlhdCI6MTU1MDczODk4MCwic3ViIjoiODQ2NjQiLCJleHAiOjE1NTA5OTgxODB9.sowgrK2LHLiVAZL4MFC2rgapD9ves8nCyZKlKaWtydY";
  28. Result result = await HttpManager.get("userInfo/getUserInfo");
  29. AppState state = AppState();
  30. if (result.success && result.data != null) {
  31. state.isLogin = true;
  32. UserInfo userInfo = UserInfo.fromJson(result.data);
  33. state.userInfo = userInfo;
  34. prefs.setString("token", result.token);
  35. } else {
  36. state.isLogin = false;
  37. }
  38. Store<AppState> store = Store<AppState>(appReducer, initialState: state);
  39. runApp(new MobileCyberGamesApp(store));
  40. }