import 'dart:convert'; import 'dart:io'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:huixiang/address/address_map_page.dart'; import 'package:huixiang/address/edit_address_page.dart'; import 'package:huixiang/community/community_details.dart'; import 'package:huixiang/community/release_dynamic.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/home/founder_story_page.dart'; import 'package:huixiang/integral/integral_detailed_page.dart'; import 'package:huixiang/integral/integral_page.dart'; import 'package:huixiang/integral_store/integral_store_details_page.dart'; import 'package:huixiang/login/login_page.dart'; import 'package:huixiang/message/main_message_page.dart'; import 'package:huixiang/message/system_message.dart'; import 'package:huixiang/mine/coupons_page.dart'; import 'package:huixiang/mine/edit_name.dart'; import 'package:huixiang/mine/mine_card_invalid_page.dart'; import 'package:huixiang/mine/mine_card_page.dart'; import 'package:huixiang/mine/mine_wallet_page.dart'; import 'package:huixiang/mine/recharge_page.dart'; import 'package:huixiang/mine/user_info_page.dart'; import 'package:huixiang/mine/vip_balance_page.dart'; import 'package:huixiang/mine/vip_card_page.dart'; import 'package:huixiang/mine/vip_detail_page.dart'; import 'package:huixiang/order/edit_remarks_page.dart'; import 'package:huixiang/order/exchange_history_page.dart'; import 'package:huixiang/order/exchange_order_page.dart'; import 'package:huixiang/order/exchange_order_success_page.dart'; import 'package:huixiang/order/exchange_order_detail_page.dart'; import 'package:huixiang/order/logistics_information_page.dart'; import 'package:huixiang/order/order_detail_page.dart'; import 'package:huixiang/order/order_history_page.dart'; import 'package:huixiang/order/store_selector_page.dart'; import 'package:huixiang/order/write_off_page.dart'; import 'package:huixiang/order/write_off_success_page.dart'; import 'package:huixiang/qr/invite_friends.dart'; import 'package:huixiang/qr/qr_code_scan.dart'; import 'package:huixiang/qr/qr_share.dart'; import 'package:huixiang/data/examine_instance.dart'; import 'package:huixiang/setting/about_page.dart'; import 'package:huixiang/setting/account_security_page.dart'; import 'package:huixiang/setting/binding_phone_page.dart'; import 'package:huixiang/setting/help_feedback_page.dart'; import 'package:huixiang/setting/logout_ing.dart'; import 'package:huixiang/setting/logout_page.dart'; import 'package:huixiang/setting/permission_setting_page.dart'; import 'package:huixiang/setting/platform_code_page.dart'; import 'package:huixiang/setting/platform_pay_code.dart'; import 'package:huixiang/setting/platform_pay_code_success.dart'; import 'package:huixiang/setting/setting_page.dart'; import 'package:huixiang/setting/treaty_page.dart'; import 'package:huixiang/store/report_assess%20.dart'; import 'package:huixiang/store/shop_details_page.dart'; import 'package:huixiang/store/shopping/activity_prefecture_details.dart'; import 'package:huixiang/store/shopping/shopping_goods_details.dart'; import 'package:huixiang/store/shopping/shopping_home/bargain_details.dart'; import 'package:huixiang/store/shopping/shopping_home/group_details.dart'; import 'package:huixiang/store/shopping/shopping_home/group_page_details.dart'; import 'package:huixiang/store/shopping/shopping_home/search_page.dart'; import 'package:huixiang/store/shopping/shopping_mall_home.dart'; import 'package:huixiang/setting/user_service_page.dart'; import 'package:huixiang/store/store_html.dart'; import 'package:huixiang/store/store_order.dart'; import 'package:huixiang/settlement/settlement.dart'; import 'package:huixiang/store/store_view/product_meals_sku.dart'; import 'package:huixiang/test_page.dart'; import 'package:huixiang/union/location_map_page.dart'; import 'package:huixiang/union/union_select_city.dart'; import 'package:huixiang/utils/ImgCachePath.dart'; import 'package:huixiang/utils/native_event_handler.dart'; import 'package:huixiang/utils/push_event.dart'; import 'package:huixiang/vip/user_vip_service_page.dart'; import 'package:huixiang/web/web_page.dart'; import 'package:huixiang/union/union_details_page.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:huixiang/utils/flutter_utils.dart'; import 'package:huixiang/web/web_turntable_activity.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tpns_flutter_plugin/tpns_flutter_plugin.dart'; import 'community/community_view/class_details.dart'; import 'community/headlines/headlines_column_details.dart'; import 'community/new_community_details.dart'; import 'community/photo_view_gallery_screen.dart'; import 'community/report/report_notice.dart'; import 'community/report/report_page.dart'; import 'community/report/report_success.dart'; import 'home/guide_page.dart'; import 'home/help_farmers/help_farmers_page.dart'; import 'home/home_view/activity_list.dart'; import 'home/start_page.dart'; import 'home/trading_card_page.dart'; import 'home/welfare_exchange.dart'; import 'home/welfare_page.dart'; import 'login/login_store_select.dart'; import 'login/new_login_page.dart'; import 'login/phone_address_page.dart'; import 'main_page.dart'; import 'message/system_details.dart'; import 'message/system_notice.dart'; import 'mine/coupon_page.dart'; import 'mine/edit_signature.dart'; import 'mine/invitation_record.dart'; import 'mine/manage_address_page.dart'; import 'mine/mine_greenery.dart'; import 'mine/mine_shop_details.dart'; import 'mine/mine_shop_page.dart'; import 'mine/mine_shop_recharge.dart'; import 'mine/mine_view/community_follow.dart'; import 'mine/mine_vip/binding_assistant_card.dart'; import 'mine/mine_vip/legal_right_details.dart'; import 'mine/mine_vip/mine_attainment_page.dart'; import 'mine/mine_vip/mine_vip_core.dart'; import 'mine/scan_web.dart'; import 'mine/vip_pay_code.dart'; import 'order/bargain_group_order.dart'; import 'mine/personal_page.dart'; import 'order/exchange_write_off_page.dart'; import 'mine/release_page.dart'; import 'mine/roll_center_page.dart'; import 'order/invoices_manage/add_invoices_title.dart'; import 'order/invoices_manage/edit_invoices_info.dart'; import 'order/invoices_manage/invoices_detail_page.dart'; import 'order/invoices_manage/invoices_history.dart'; import 'order/invoices_manage/invoices_manage_page.dart'; import 'order/invoices_manage/invoices_title_info.dart'; void main() async { if (Platform.isAndroid) { SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle(statusBarColor: Colors.transparent)); } WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, ]); SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); Locale? locale; if (sharedPreferences.containsKey("language") && sharedPreferences.getString("language") == "tw") { locale = Locale.fromSubtags(languageCode: 'zh', countryCode: 'TW'); } else if(sharedPreferences.containsKey("language") && sharedPreferences.getString("language") == "ch"){ locale = Locale.fromSubtags(languageCode: 'zh', countryCode: 'CH'); } ImgCachePath(); // initSdk(); bool? isFirst = sharedPreferences.getBool("isFirst"); addPushHandler(); runApp(MyApp(locale, isFirst)); // FlutterBugly.postCatchedException((){}); // FlutterBugly.init(androidAppId: "204f207673",iOSAppId: "8bb92ba0f6"); } addPushHandler() { // if (Platform.isAndroid) { // xgFlutterPlugin.getXgAndroidApi().addNativeEventHandler( // MyNativeEventHandler((String title, String message, String customContent, int type) { // print("xgPushClickAction2: $customContent"); // SharedPreferences.getInstance().then((value) { // value.setString("pushData", customContent); // }); // }, // ), // ); // } /// @typed: ARTICLE(1)文章 ACTIVITY(2)活动 SHOP(3)店铺 /// CREDIT_GOODS(4)积分商品 ORDER(5)订单 TREND(6)动态 MEMBER(7)用户 /// WALLET(8)平台余额/钱包 WELFARE(9)福利中心 COUPON(12)优惠券列表 /// CATE_BEAN(13)我的印章 xgFlutterPlugin.addEventHandler( onReceiveMessage: (Map event) async { print("onReceiveMessage: ${event.toString()}"); return true; }, onReceiveNotificationResponse: (Map event) async { print("onReceiveNotificationResponse: ${event.toString()}"); try { if (jsonDecode(event["customMessage"])["typed"] == 6) { eventBus.fire(PushEvent(1)); } } catch (ex) {} return true; }, xgPushClickAction: (Map event) async { print("xgPushClickAction1: $event"); if (event["actionType"] == 2) return event; if (Platform.isAndroid ? (event["actionType"] == 0) : (event["xg"]?["msgtype"] == 1) && event[Platform.isAndroid ? "customMessage" : "custom"] != null) { SharedPreferences.getInstance().then((value) { value.setString("pushData", event[Platform.isAndroid ? "customMessage" : "custom"]); }); eventBus.fire(PushEvent(0)); } return true; }, xgPushDidBindWithIdentifier: (Map event) async { print("xgPushDidBindWithIdentifier: ${event.toString()}"); return true; }, xgPushDidUnbindWithIdentifier: (Map event) async { print("xgPushDidUnbindWithIdentifier: ${event.toString()}"); return true; }, xgPushDidUpdatedBindedIdentifier: (Map event) async { print("xgPushDidUpdatedBindedIdentifier: ${event.toString()}"); return true; }, xgPushDidClearAllIdentifiers: (Map event) async { print("xgPushDidClearAllIdentifiers: ${event.toString()}"); return true; }, onRegisteredDeviceToken: (String res) async { print("onRegisteredDeviceToken: ${res}"); return true; }, onRegisteredDone: (String res) async { print("onRegisteredDone: ${res}"); return true; }, unRegistered: (String res) async { print("unRegistered: ${res}"); return true; }, xgPushNetworkConnected: (String res) async { print("xgPushNetworkConnected: ${res}"); return true; }, xgPushDidSetBadge: (String res) async { print("xgPushDidSetBadge: ${res}"); return true; }, ); } XgFlutterPlugin xgFlutterPlugin = XgFlutterPlugin(); EventBus eventBus = EventBus(sync: true); Route? lastRoutePage; class MyApp extends StatelessWidget { final Locale? appLocale; final bool? isFirst; MyApp(this.appLocale, this.isFirst); @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: Size(375, 812), builder: (BuildContext context, Widget? child,) => GetMaterialApp( debugShowCheckedModeBanner: false, title: Platform.isAndroid ? (ExamineInstance.instance.isExamine?"海峡姐妹":""):"", theme: ThemeData( primarySwatch: Colors.blue, // fontFamily: 'JDZhengHT', textTheme: TextTheme( labelLarge: TextStyle(fontSize: 24.sp), bodyLarge: TextStyle(fontSize: 12.sp), bodyMedium: TextStyle(fontSize: 16.sp), ), ), localeResolutionCallback: (locale, supportedLocales) { print("locale: $locale"); print("supportedLocales: $supportedLocales"); return appLocale ?? locale; }, localizationsDelegates: [ S.delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], localeListResolutionCallback: (List? locales, Iterable supportedLocales) { if (locales?.isEmpty ?? true) { return appLocale; } print("locale: ${locales![0]}"); Locale? locale; if (locales[0].countryCode == "TW") { locale = Locale.fromSubtags(languageCode: 'zh', countryCode: 'TW'); } else if (locales[0].countryCode == "US"){ locale = Locale.fromSubtags(languageCode: 'en', countryCode: 'US'); } else{ locale = Locale.fromSubtags(languageCode: 'zh', countryCode: 'CH'); } return appLocale ?? locale; }, supportedLocales: S.delegate.supportedLocales, home: (isFirst ?? true) ? GuidePage() : NewLoginPage(), // home: StartPage(isFirst), builder: EasyLoading.init( builder: (context, widget) { // ScreenUtil.setContext(context); return MediaQuery( data: MediaQuery.of(context).copyWith( textScaler: TextScaler.linear(AppUtils.textScale(context)), ), child: FlutterSmartDialog(child: widget), ); }, ), onGenerateRoute: (settings) { final String? name = settings.name; if(lastRoutePage?.settings.name == name){ if(lastRoutePage?.settings.name == "/router/personal_page" && lastRoutePage?.navigator != null) lastRoutePage?.navigator?.pop(); } final Function? pageContentBuilder = routers[name]; if (pageContentBuilder != null) { final Route route = CupertinoPageRoute( builder: (context) { return pageContentBuilder(context, arguments: settings.arguments); }, settings: settings, ); lastRoutePage = route; return route; } return MaterialPageRoute( //未找到页面配置进入登录页 builder: (context) { return NewLoginPage(); }, settings: settings, ); }, ), ); } } Map routers = { '/router/exchange_order_success_page': (context, {arguments}) => ExchangeOrderSuccessPage(arguments: arguments), '/router/logistics_information_page': (context, {arguments}) => LogisticsInformationPage(arguments: arguments), '/router/exchange_write_offPage': (context, {arguments}) => ExchangeWriteOffPage(arguments: arguments), '/router/integral_store_page': (context, {arguments}) => IntegralStoreDetailsPage(arguments: arguments), '/router/manage_address_page': (context, {arguments}) => ManageAddressPage(arguments: arguments), '/router/exchange_order_page': (context, {arguments}) => ExchangeOrderPage(arguments: arguments), // '/router/mine_vip_level_page': (context, {arguments}) => // MineVipLevelPage(arguments: arguments), '/router/mine_vip_core': (context, {arguments}) => MineVipCore(arguments: arguments), '/router/legal_right_details': (context, {arguments}) => LegalRightDetails(arguments: arguments), '/router/binding_assistant_card': (context, {arguments}) => BindingAssistantCard(), '/router/order_history_page': (context, {arguments}) => OrderHistoryPage(arguments: arguments), '/router/bargain_group_order': (context, {arguments}) => BargainGroupOrder(arguments:arguments), '/router/union_detail_page': (context, {arguments}) => UnionDetailsPage(arguments: arguments), '/router/address_edit_page': (context, {arguments}) => EditAddressPage(arguments: arguments), '/router/vip_details_page': (context, {arguments}) => VipDetailPage(arguments: arguments), '/router/order_details': (context, {arguments}) => OrderDetailPage(arguments: arguments), // '/router/hot_article_details_page': (context, {arguments}) => HotArticleDetailsPage(), '/router/write_off_page': (context, {arguments}) => WriteOffPage(arguments: arguments), '/router/store_order': (context, {arguments}) => StoreOrderPage(arguments: arguments), '/router/shopping_mall_home': (context, {arguments}) => ShoppingMallHome(arguments: arguments), '/router/activity_prefecture_details': (context, {arguments}) => ActivityPrefectureDetails(arguments: arguments), '/router/shopping_goods_details': (context, {arguments}) => ShoppingGoodsDetails(arguments: arguments), '/router/search_page': (context, {arguments}) => SearchPage(arguments:arguments), '/router/vip_balance': (context, {arguments}) => VipBalancePage(arguments: arguments), '/router/exchange_order_details': (context, {arguments}) => ExchangeOrderDetailPage(), // '/router/location_map': (context, {arguments}) => // LocationMap(arguments: arguments), '/router/settlement': (context, {arguments}) => Settlement(arguments: arguments), '/router/integral_detailed_page': (context, {arguments}) => IntegralDetailedPage(arguments:arguments), '/router/write_off_success_page': (context, {arguments}) => WriteOffSuccessPage(), '/router/exchange_history_page': (context, {arguments}) => ExchangeHistoryPage(), '/router/permission_setting': (context, {arguments}) => PermissionSettingPage(), '/router/login_page': (context, {arguments}) => LoginPage(arguments: arguments), '/router/new_login_page': (context, {arguments}) => NewLoginPage(arguments: arguments), '/router/edit_name': (context, {arguments}) => EditName(arguments: arguments), '/router/edit_signature': (context, {arguments}) => EditSignature(arguments: arguments), '/router/mine_card_invalid': (context, {arguments}) => MineCardInvalidPage(), '/router/store_selector_page': (context, {arguments}) => StoreSelectorPage(arguments: arguments,), '/router/web_page': (context, {arguments}) => WebPage(arguments: arguments), '/router/web_turntable_activity': (context, {arguments}) => WebTurntableActivity(), '/router/help_feedback_page': (context, {arguments}) => HelpFeedbackPage(), '/router/founder_story_page': (context, {arguments}) => FounderStoryPage(), '/router/system_msg_page': (context, {arguments}) => SystemMessagePage(), '/router/edit_remarks_page': (context, {arguments}) => EditRemarksPage(arguments: arguments), // '/router/hot_article_page': (context, {arguments}) => HotArticlePage(), '/router/address_map_page': (context, {arguments}) => AddressMapPage(), '/router/roll_center_page': (context, {arguments}) => RollCenterPage(), '/router/release_dynamic': (context, {arguments}) => ReleaseDynamic(), '/router/community_details': (context, {arguments}) => CommunityDetails(arguments: arguments), '/router/new_community_details': (context, {arguments}) => NewCommunityDetails(arguments: arguments), '/router/user_info_page': (context, {arguments}) => UserInfoPage(), '/router/recharge_page': (context, {arguments}) => RechargePage(), '/router/mine_wallet': (context, {arguments}) => MineWalletPage(), '/router/integral_page': (context, {arguments}) => IntegralPage(), '/router/vip_card_page': (context, {arguments}) => VipCardPage(), '/router/msg_page': (context, {arguments}) => MainMessagePage(), '/router/coupons_page': (context, {arguments}) => CouponsPage(), '/router/setting_page': (context, {arguments}) => SettingPage(), '/router/qr_scan': (context, {arguments}) => QrCodeScanPage(), '/router/treaty_page': (context, {arguments}) => TreatyPage(), '/router/mine_card': (context, {arguments}) => MineCardPage(), '/router/guide_Page': (context, {arguments}) => GuidePage(), '/router/about_page': (context, {arguments}) => AboutPage(), '/router/qr_share': (context, {arguments}) => QrSharePage(), '/router/main_page': (context, {arguments}) => MainPage(arguments: arguments), '/router/start_page': (context, {arguments}) => StartPage(), '/router/test_page': (context, {arguments}) => TestPage(), '/router/communityFollow': (context, {arguments}) => CommunityFollow(arguments:arguments), '/router/releasePage': (context, {arguments}) => ReleasePage(), '/router/activity_list': (context, {arguments}) => ActivityList(), '/router/class_details': (context, {arguments}) => ClassDetails(arguments: arguments), '/router/mine_attainment_page': (context, {arguments}) => MineAttainmentPage(arguments: arguments), '/router/headlines_column_details': (context, {arguments}) => HeadlinesColumnDetails(arguments: arguments), '/router/group_details': (context, {arguments}) => GroupDetails(arguments:arguments), '/router/bargain_details': (context, {arguments}) => BargainDetails(arguments:arguments), '/router/group_page_details': (context, {arguments}) => GroupPageDetails(arguments:arguments), '/router/photo_view_gallery_screen': (context, {arguments}) => PhotoViewGalleryScreen(), '/router/system_details': (context, {arguments}) => SystemDetails(arguments: arguments), '/router/invitation_record': (context, {arguments}) => InvitationRecord(), '/router/personal_page': (context, {arguments}) => PersonalPage(arguments:arguments), '/router/report_page': (context, {arguments}) => ReportPage(arguments:arguments), '/router/report_notice': (context, {arguments}) => ReportNotice(), '/router/report_success': (context, {arguments}) => ReportSuccess(), '/router/logout_page': (context, {arguments}) => LogoutPage(), '/router/logout_ing': (context, {arguments}) => LogoutIng(), '/router/user_service_page': (context, {arguments}) => UserServicePage(), '/router/welfare_page': (context, {arguments}) => WelfarePage(), '/router/invite_friends': (context, {arguments}) => InviteFriends(), '/router/report_assess': (context, {arguments}) => ReportAssess(), '/router/shop_details_page': (context, {arguments}) => ShopDetailsPage(arguments: arguments,), '/router/mine_greenery': (context, {arguments}) => MineGreenery(), '/router/mine_shop_page': (context, {arguments}) => MineShopPage(), '/router/mine_shop_recharge': (context, {arguments}) => MineShopRecharge(arguments: arguments,), '/router/mine_shop_details': (context, {arguments}) => MineShopDetails(arguments:arguments,), '/router/coupon_page': (context, {arguments}) => CouponPage(), '/router/welfare_exchange': (context, {arguments}) => WelfareExchange(), '/router/account_security_page': (context, {arguments}) => AccountSecurityPage(), '/router/platform_code_page': (context, {arguments}) => PlatformCodePage(arguments:arguments), '/router/platform_pay_code': (context, {arguments}) => PlatformPayCode(arguments:arguments), '/router/platform_pay_code_success': (context, {arguments}) => PlatformPayCodeSuccess(arguments:arguments), '/router/phone_address_page': (context, {arguments}) => PhoneAddressPage(), '/router/product_meals_sku': (context, {arguments}) => ProductMealsSku(arguments:arguments), '/router/user_vip_service_page': (context, {arguments}) => UserVipServicePage(), '/router/help_farmers_page': (context, {arguments}) => HelpFarmersPage(), '/router/scan_web': (context, {arguments}) => ScanWeb(arguments:arguments), '/router/vip_pay_code': (context, {arguments}) => VipPayCode(), '/router/system_notice': (context, {arguments}) => SystemNotice(), '/router/store_html': (context, {arguments}) => StoreHtml(arguments:arguments), '/router/login_store_select': (context, {arguments}) => LoginStoreSelect(arguments:arguments), '/router/binding_phone_page': (context, {arguments}) => BindingPhonePage(arguments:arguments), '/router/trading_card_page': (context, {arguments}) => TradingCardPage(), '/router/union_select_city': (context, {arguments}) => UnionSelectCity(arguments:arguments), '/router/invoices_manage_page': (context, {arguments}) => InvoicesManagePage(), '/router/invoices_title_info': (context, {arguments}) => InvoicesTitleInfo(arguments:arguments), '/router/add_invoices_title': (context, {arguments}) => AddInvoicesTitle(arguments:arguments), '/router/invoices_history': (context, {arguments}) => InvoicesHistory(), '/router/edit_invoices_info': (context, {arguments}) => EditInvoicesInfo(arguments:arguments), '/router/invoices_detail_page': (context, {arguments}) => InvoicesDetailPage(arguments:arguments), };