import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_bugly/flutter_bugly.dart'; import 'package:get/get.dart'; import 'package:path/path.dart' as path; import 'package:provider/provider.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/login/login/starLock_login_logic.dart'; import 'package:star_lock/login/register/entity/checkIP_entity.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'; import 'package:star_lock/network/start_chart_api.dart'; import 'package:star_lock/talk/starChart/handle/impl/debug_Info_model.dart'; import 'package:star_lock/talk/starChart/status/appLifecycle_observer.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/bugly/bugly_tool.dart'; import 'package:star_lock/tools/callkit_handler.dart'; import 'package:star_lock/tools/device_info_service.dart'; import 'package:star_lock/tools/eventBusEventManage.dart'; import 'package:star_lock/tools/jverify_one_click_login.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'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/translations/current_locale_tool.dart'; import 'package:star_lock/translations/trans_lib.dart'; import 'apm/apm_helper.dart'; import 'app.dart'; import 'app_settings/app_settings.dart'; import 'tools/store_service.dart'; // 该文件不可作为编译入口,请查看 flavorizr.yaml 中的说明 FutureOr main() async { FlutterBugly.postCatchedException(() async { WidgetsFlutterBinding.ensureInitialized(); // 创建并注册 AppLifecycleObserver(用于程序是否进入后台的监听) AppLifecycleObserver appLifecycleObserver = AppLifecycleObserver(); WidgetsBinding.instance.addObserver(appLifecycleObserver); // await ApmHelper.instance.initApp(); await _setCommonServices(); // 设置国际化信息 await _initTranslation(); final bool isLogin = await getLoginStatus(); if (isLogin) { await privacySDKInitialization(); } 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))); if (Platform.isIOS) { CallKitHandler.setupListener(); String? token = await CallKitHandler.getVoipToken(); print('获取到的VoIP Token: $token'); } runApp(MyApp(isLogin: isLogin)); }); if (AppPlatform.isAndroid) { const SystemUiOverlayStyle systemUiOverlayStyle = SystemUiOverlayStyle(statusBarColor: Colors.transparent); SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle); } // checkChinese(); } // 设置国际化信息 Future _initTranslation() async => TranslationLoader.loadTranslation(); // 设置包名服务设备信息 Future _setCommonServices() async { await Get.putAsync(() => StoreService().init()); Get.put(ApiProvider()); Get.put(StartChartApi()); Get.put(ApiRepository(Get.find())); if (F.isLite) { //上架审核注释 获取设备信息 // await Get.putAsync(() => DeviceInfoService().init()); } else { await Get.putAsync(() => DeviceInfoService().init()); } } //关于隐私协议的初始化 Future privacySDKInitialization() async { ApmHelper.instance.initSdk(); await Get.putAsync(() => PlatformInfoService().init()); await BuglyTool.init(); // 初始化JPush服务 final XSJPushProvider jpushProvider = XSJPushProvider(); await jpushProvider.initJPushService(); NotificationService().init(); // 初始化通知服务 // /// 检查ip如果属于国内才进行初始化 // final CheckIPEntity entity = await ApiRepository.to.checkIpAction(ip: ''); // if (entity.errorCode!.codeIsSuccessful) { // String currentLanguage = // CurrentLocaleTool.getCurrentLocaleString(); // 当前选择语言 // // 判断如果ip是国内的且选的是中文才初始化一键登录 // if (entity.data!.abbreviation?.toLowerCase() == 'cn' && // currentLanguage == 'zh_CN') { // // 初始化一键登录服务 // final StarLockLoginLogic loginLogic = Get.put(StarLockLoginLogic()); // await JverifyOneClickLoginManage(); // loginLogic.state.isCheckVerifyEnable.value = // await JverifyOneClickLoginManage().checkVerifyEnable(); // eventBus.fire(AgreePrivacyAgreement()); // } // } }