main.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/services.dart';
  3. import 'package:provider/provider.dart';
  4. import 'package:bot_toast/bot_toast.dart';
  5. import 'package:twong/pages/tabs.dart';
  6. import 'package:twong/utils/index.dart';
  7. import 'package:twong/utils/sentry.dart';
  8. import 'package:twong/router/index.dart';
  9. import 'package:twong/config/style.dart';
  10. import 'package:twong/config/theme.dart';
  11. import 'package:twong/providers/index.dart';
  12. void main() async {
  13. WidgetsFlutterBinding.ensureInitialized();
  14. // await SentryUtils.initPlatformState();
  15. // runZoned((){
  16. // ErrorWidget.builder = (FlutterErrorDetails details){
  17. // Zone.current.handleUncaughtError(details.exception, details.stack);
  18. // ///出现异常时会进入下方页面(flutter原有的红屏),
  19. // // return ExceptionPageState(details.exception.toString(),details.stack.toString()).generateWidget();
  20. // return Container();
  21. // };
  22. // }, onError: (Object error,StackTrace trace){
  23. // ///你可以将下面日志上传到服务器,用于release后的错误处理
  24. // Log.e("$error ${trace.toString()}");
  25. // SentryUtils.reportError(error, trace);
  26. // });
  27. try {
  28. Log.init();
  29. initRouterList();
  30. Cache.initial().then((e) => runApp(MainApp()));
  31. SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
  32. } catch (error, trace) {
  33. Log.e("$error ${trace.toString()}");
  34. SentryUtils.reportError(error, trace);
  35. }
  36. }
  37. class MainApp extends StatelessWidget {
  38. final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<
  39. NavigatorState>();
  40. final SystemUiOverlayStyle _style = SystemUiOverlayStyle(
  41. statusBarColor: Colors.transparent);
  42. @override
  43. Widget build(BuildContext context) {
  44. Cache.setKey(navigatorKey);
  45. SystemChrome.setSystemUIOverlayStyle(_style);
  46. return MultiProvider(
  47. providers: providers,
  48. child: MaterialApp(
  49. debugShowCheckedModeBanner: false,
  50. home: Tabs(),
  51. theme: ThemeData(
  52. fontFamily: "HuaWen",
  53. cursorColor: Colors.white,
  54. backgroundColor: DColors.Main,
  55. splashFactory: const NoSplashFactory()
  56. ),
  57. builder: BotToastInit(),
  58. navigatorKey: navigatorKey,
  59. onGenerateRoute: onGenerateRoute,
  60. navigatorObservers: [BotToastNavigatorObserver()]
  61. ));
  62. }
  63. }