main.dart 2.96 KB

import 'package:dio/dio.dart';
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/ball_pulse_footer.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_easyrefresh/material_header.dart';
import 'package:fluwx/fluwx.dart';
import 'package:one_key/provider/message_dialog_model.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:one_key/utils/utils.dart';
import 'package:provider/provider.dart';

import 'app.dart';
import 'net/dio_util.dart';
import 'net/http_url.dart';
import 'pages/login/login_page.dart';
import 'provider/user_model.dart';
import 'route/navigate_service.dart';
import 'route/routes.dart';
import 'utils/log_util.dart';
import 'package:flutter/services.dart';

Future<void> main() async {
  Router router = Router();
  Routes.configureRoutes(router);
  App.router = router;
  App.setupLocator();
  LogUtil.init(isDebug: true, tag: 'ONE_KEY');
  Provider.debugCheckInvalidValueType = null;
  await initializeDateFormatting();
  runApp(MultiProvider(
    providers: [
      ChangeNotifierProvider<UserModel>(
        create: (_) => UserModel(),
      ),
      ChangeNotifierProvider<MessageDialogModel>(
        create: (_) => MessageDialogModel()..init(),
      )
    ],
    child: MyApp(),
  ));
}

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return new MyAppState();
  }
}

class MyAppState extends State<MyApp>{

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    initDio();
    _initFluwx();
    Utils.changeStatusColor();
    // 设置EasyRefresh的默认样式
    EasyRefresh.defaultHeader = MaterialHeader();
    EasyRefresh.defaultFooter = BallPulseFooter();
  }

  //初始化微信SDK
  _initFluwx() async {
    await registerWxApi(
        appId: "wx85aa3cdd0f791e65",
        doOnAndroid: true,
  doOnIOS: true,
  universalLink: "https://xt04.colorcun.com/link/one_key");
  var result = await isWeChatInstalled;
  LogUtil.v("is installed $result");
}

  initDio() {
    DioUtil.openDebug();
    Options options = DioUtil.getDefOptions();
    options.baseUrl = HttpUrl.server_address;
    HttpConfig config = new HttpConfig(
        options: options, status: "ret", code: "ret", msg: "msg", data: "data");
    DioUtil().setConfig(config);
  }


  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: '一键订',
      navigatorKey: App.getIt<NavigateService>().key,
      theme: ThemeData(
          brightness: Brightness.light,
          primaryColor: Colors.white,
          splashColor: Colors.transparent,
          textTheme: TextTheme(overline: TextStyle(decoration: TextDecoration.none)),
          tooltipTheme: TooltipThemeData(verticalOffset: -100000)),
      home: LoginPage(),
      onGenerateRoute: App.router.generator,
    );
  }
}