98 lines
3.2 KiB
Dart
98 lines
3.2 KiB
Dart
import 'package:bot_toast/bot_toast.dart';
|
|
import 'package:firebase_core/firebase_core.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:flutter_translate/ads/interstitial_ad_manage.dart';
|
|
import 'package:flutter_translate/common/hive/hive.dart';
|
|
import 'package:flutter_translate/common/utils/log_utils.dart';
|
|
import 'package:flutter_translate/common/utils/shared_util.dart';
|
|
import 'package:flutter_translate/facebook/facebook_manager.dart';
|
|
import 'package:flutter_translate/firebase/firebase_analytics_manager.dart';
|
|
import 'package:flutter_translate/firebase/firebase_crashlytics_manager.dart';
|
|
import 'package:flutter_translate/firebase/firebase_options.dart';
|
|
import 'package:flutter_translate/global/app_themes.dart';
|
|
import 'package:flutter_translate/manager/att.dart';
|
|
import 'package:flutter_translate/manager/translate.dart';
|
|
import 'package:flutter_translate/manager/tts.dart';
|
|
import 'package:flutter_translate/router/get_gages.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import 'global/app_config.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
await initHive();
|
|
|
|
// 初始化Firebase
|
|
try {
|
|
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
|
|
await FirebaseCrashlyticsManager.setEnabled();
|
|
FirebaseCrashlyticsManager.recordFlutterError();
|
|
FirebaseCrashlyticsManager.recordError();
|
|
FirebaseAnalyticsManager.logLaunch();
|
|
} catch (e) {
|
|
Log.d("Firebase initialization error: $e");
|
|
}
|
|
|
|
await FacebookManager.init();
|
|
|
|
await InterstitialAdManager().init();
|
|
|
|
SharedUtil.initShared();
|
|
|
|
await Translate().init();
|
|
await Tts().init();
|
|
|
|
Att().attRequest();
|
|
|
|
// 竖屏
|
|
SystemChrome.setPreferredOrientations([
|
|
DeviceOrientation.portraitUp,
|
|
DeviceOrientation.portraitDown,
|
|
]);
|
|
|
|
runApp(const App());
|
|
}
|
|
|
|
class App extends StatelessWidget {
|
|
const App({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return ScreenUtilInit(
|
|
designSize: const Size(375, 812),
|
|
minTextAdapt: true,
|
|
builder: (context, child) {
|
|
final botToastBuilder = BotToastInit();
|
|
return KeyboardDismissOnTap(
|
|
child: GetMaterialApp(
|
|
debugShowCheckedModeBanner: false,
|
|
title: appName,
|
|
theme: lightTheme,
|
|
themeMode: ThemeMode.light,
|
|
initialRoute: GetPages.launch,
|
|
getPages: GetPages.routers,
|
|
builder: (context, widget) {
|
|
widget = botToastBuilder(context, widget);
|
|
// 设置文字大小不随系统设置改变
|
|
return MediaQuery.withNoTextScaling(child: widget);
|
|
},
|
|
routingCallback: (routing) {
|
|
Log.d("当前路由 => ${routing?.current}");
|
|
if (routing?.current == GetPages.launch) {
|
|
FirebaseAnalyticsManager.logLoadingPage();
|
|
}
|
|
if (routing?.current == GetPages.home) {
|
|
FirebaseAnalyticsManager.logHomepage();
|
|
}
|
|
},
|
|
),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|