import 'package:aliyun_push/aliyun_push.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/tools/app_manager.dart'; import 'package:star_lock/tools/bindings/app_binding.dart'; import 'package:star_lock/tools/device_info_service.dart'; import 'package:star_lock/tools/platform_info_services.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/xs_aliyunPush.dart'; // import 'package:star_lock/tools/store_service.dart'; import 'package:star_lock/translations/app_dept.dart'; import 'package:star_lock/translations/trans_lib.dart'; import 'appRouters.dart'; import 'baseWidget.dart'; import 'tools/appRouteObserver.dart'; import 'tools/store_service.dart'; import 'dart:io'; import 'package:flutter/services.dart'; void main() async { await _setCommonServices(); // 设置国际化信息 await _initTranslation(); runApp(MyApp()); if (Platform.isAndroid) { SystemUiOverlayStyle systemUiOverlayStyle = const SystemUiOverlayStyle(statusBarColor: Colors.transparent); SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle); } } class MyApp extends StatefulWidget { const MyApp({GlobalKey? key}) : super(key: key); @override State createState() => _MyAppState(); } // 注册 RouteObserver 作为 navigation observer. final RouteObserver routeObserver = RouteObserver(); class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { final _aliyunPush = AliyunPush(); var _deviceId = ""; @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: const Size(585, 1265), builder: (w, a) => _initMaterialApp()); } GetMaterialApp _initMaterialApp() => GetMaterialApp( title: 'Star Lock', navigatorObservers: [routeObserver, AppRouteObserver().routeObserver], translations: TranslationMessage(), supportedLocales: appDept.deptSupportedLocales, localizationsDelegates: const [ GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], localeResolutionCallback: (locale, supportedLocales) { if (!supportedLocales.contains(locale)) { int idx = appSupportedLocales.indexWhere( (element) => element.languageCode == locale!.languageCode); if (idx != -1) { locale = appSupportedLocales[idx]; } else { locale = const Locale('zh', 'CN'); } } // print("localelocalelocalelocalelocale locale:${locale} locale.languageCode:${locale.languageCode} locale.countryCode:${locale.countryCode} supportedLocales:${supportedLocales}"); AppManager() .setLanCode(code: '${locale!.languageCode}_${locale.countryCode}'); return locale; }, // locale: StoreService.to.getLanguageCode().isNotEmpty ? appDept.deptSupportedLocales.where((element) => element.languageCode == StoreService.to.getLanguageCode()).first : Get.deviceLocale, locale: Get.deviceLocale, fallbackLocale: const Locale('zh', 'CN'), theme: ThemeData( scaffoldBackgroundColor: const Color(0xFFF6F6F6), backgroundColor: const Color(0xFFF6F6F6), primaryColor: const Color(0xFFFFFFFF), textTheme: TextTheme( //用在非Material组件上的文字显示, bodyText1: TextStyle(fontSize: 28.sp, color: const Color(0xff2E2B2B)), //Material组件上的文字显示 bodyText2: TextStyle(fontSize: 28.sp, color: const Color(0xff2E2B2B)), button: TextStyle(fontSize: 28.sp)), iconTheme: IconThemeData(size: 28.sp, color: const Color(0xff2E2B2B)), appBarTheme: AppBarTheme( backgroundColor: const Color(0xFFFFFFFF), elevation: 0, centerTitle: true, iconTheme: IconThemeData(color: const Color(0xff333333), size: 36.sp), titleTextStyle: TextStyle( color: const Color(0xff333333), fontWeight: FontWeight.w400, fontSize: 36.sp), ), splashColor: Colors.transparent, // 点击时的高亮效果设置为透明 highlightColor: Colors.transparent, ), debugShowCheckedModeBanner: false, getPages: AppRouters.routePages, builder: EasyLoading.init(), initialBinding: AppBindings(), initialRoute: '/'); @override void initState() { super.initState(); WidgetsBinding.instance?.addObserver(this); initAliyunPush(); } //初始化阿里云推送 void initAliyunPush() { XSAliyunPushProvider().init(_aliyunPush); XSAliyunPushProvider().initAliyunPush(); if (Platform.isAndroid) { XSAliyunPushProvider().initAliyunThirdPush(); } //暂不使用DeviceID推送 _aliyunPush.getDeviceId().then((deviceId) { setState(() { _deviceId = deviceId; }); }); //使用userid根据账号推送 _aliyunPush.bindAccount(Storage.getUid().toString()).then((value) { print("得到了value$value"); }); } @override void dispose() { WidgetsBinding.instance?.removeObserver(this); super.dispose(); } void didChangeAppLifecycleState(AppLifecycleState state) { if (state == AppLifecycleState.resumed) { // 应用进入前台 print("应用进入前台"); } else if (state == AppLifecycleState.paused) { // 应用进入后台 print("应用进入后台"); } } } // 设置国际化信息 Future _initTranslation() async => TranslationLoader.loadTranslation( zhSource: "images/lan/lan_zh.json", enSource: "images/lan/lan_en.json", keySource: "images/lan/lan_keys.json", ); // 设置包名服务设备信息 Future _setCommonServices() async { await Get.putAsync(() => StoreService().init()); await Get.putAsync(() => PlatformInfoService().init()); await Get.putAsync(() => DeviceInfoService().init()); // Get.log(PlatformInfoService.to.info.version); }