app-starlock/lib/main.dart

101 lines
3.5 KiB
Dart
Raw Normal View History

import 'dart:async';
2024-08-19 11:01:37 +08:00
import 'dart:convert';
import 'dart:io';
2024-05-18 14:57:02 +08:00
2023-07-10 17:50:31 +08:00
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
2024-09-29 13:47:50 +08:00
import 'package:flutter_bugly/flutter_bugly.dart';
2024-05-18 14:57:02 +08:00
import 'package:get/get.dart';
2024-08-27 11:08:44 +08:00
import 'package:path/path.dart' as path;
import 'package:provider/provider.dart';
import 'package:star_lock/flavors.dart';
import 'package:star_lock/mine/about/debug/debug_tool.dart';
import 'package:star_lock/network/api_provider.dart';
import 'package:star_lock/network/api_repository.dart';
2024-11-28 14:57:49 +08:00
import 'package:star_lock/network/start_chart_api.dart';
2025-01-23 14:30:31 +08:00
import 'package:star_lock/talk/starChart/handle/impl/debug_Info_model.dart';
import 'package:star_lock/talk/starChart/status/appLifecycle_observer.dart';
2024-05-18 18:25:39 +08:00
import 'package:star_lock/tools/bugly/bugly_tool.dart';
2023-07-10 17:50:31 +08:00
import 'package:star_lock/tools/device_info_service.dart';
import 'package:star_lock/tools/platform_info_services.dart';
import 'package:star_lock/tools/push/notification_service.dart';
import 'package:star_lock/tools/push/xs_jPhush.dart';
2024-08-27 11:08:44 +08:00
import 'package:star_lock/tools/storage.dart';
2024-05-18 14:57:02 +08:00
import 'package:star_lock/translations/trans_lib.dart';
import 'apm/apm_helper.dart';
2024-05-18 14:57:02 +08:00
import 'app.dart';
import 'app_settings/app_settings.dart';
import 'tools/store_service.dart';
2023-07-10 17:50:31 +08:00
// 该文件不可作为编译入口,请查看 flavorizr.yaml 中的说明
FutureOr<void> main() async {
2024-09-29 13:47:50 +08:00
FlutterBugly.postCatchedException(() async {
WidgetsFlutterBinding.ensureInitialized();
// 创建并注册 AppLifecycleObserver(用于程序是否进入后台的监听)
AppLifecycleObserver appLifecycleObserver = AppLifecycleObserver();
WidgetsBinding.instance.addObserver(appLifecycleObserver);
// await ApmHelper.instance.initApp();
2024-09-29 13:47:50 +08:00
await _setCommonServices();
2023-07-10 17:50:31 +08:00
2024-09-29 13:47:50 +08:00
// 设置国际化信息
await _initTranslation();
2023-07-10 17:50:31 +08:00
2024-09-29 13:47:50 +08:00
final bool isLogin = await getLoginStatus();
if (isLogin) {
await privacySDKInitialization();
}
2024-06-01 13:35:03 +08:00
2024-09-29 13:47:50 +08:00
WidgetsBinding.instance.addPostFrameCallback((_) async {
final bool? openDeBug = await Storage.getBool(isOpenDeBug);
if (openDeBug == true) {
DeBug.showFloatWidget();
}
});
//ToDo: 增加对讲调试、正式可删除
runApp(MultiProvider(providers: [
ChangeNotifierProvider(create: (_) => DebugInfoModel()),
], child: MyApp(isLogin: isLogin)));
// runApp(MyApp(isLogin: isLogin));
2024-09-29 13:47:50 +08:00
});
if (AppPlatform.isAndroid) {
2024-05-18 14:57:02 +08:00
const SystemUiOverlayStyle systemUiOverlayStyle =
2024-09-29 13:47:50 +08:00
SystemUiOverlayStyle(statusBarColor: Colors.transparent);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
2024-08-19 11:01:37 +08:00
// checkChinese();
2023-07-10 17:50:31 +08:00
}
// 设置国际化信息
Future<void> _initTranslation() async => TranslationLoader.loadTranslation();
2023-07-10 17:50:31 +08:00
// 设置包名服务设备信息
Future<void> _setCommonServices() async {
2023-07-10 17:50:31 +08:00
await Get.putAsync(() => StoreService().init());
Get.put(ApiProvider());
2024-11-28 14:57:49 +08:00
Get.put(StartChartApi());
Get.put(ApiRepository(Get.find<ApiProvider>()));
2024-03-28 09:51:30 +08:00
if (F.isLite) {
//上架审核注释 获取设备信息
// await Get.putAsync(() => DeviceInfoService().init());
} else {
await Get.putAsync(() => DeviceInfoService().init());
}
}
//关于隐私协议的初始化
Future<void> privacySDKInitialization() async {
ApmHelper.instance.initSdk();
await Get.putAsync(() => PlatformInfoService().init());
await BuglyTool.init();
// 初始化JPush服务
final XSJPushProvider jpushProvider = XSJPushProvider();
await jpushProvider.initJPushService();
NotificationService().init(); // 初始化通知服务
}