From 93de462bfc9a9f79c4864eb92aedadf4ae4d258c Mon Sep 17 00:00:00 2001 From: wurong <953969641@qq.com> Date: Wed, 22 Mar 2023 17:10:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=8E=A8=E9=80=81=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=EF=BC=9B=20=E4=BC=98=E5=8C=96=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E7=9A=84=E9=A2=9C=E8=89=B2=EF=BC=9B=20=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85=E5=88=B7=E6=96=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/base_state.dart | 76 ++++++++++++++++------------- lib/main_page.dart | 25 +++++----- lib/order/order_detail_page.dart | 4 +- lib/view_widget/classic_header.dart | 7 ++- 4 files changed, 63 insertions(+), 49 deletions(-) diff --git a/lib/base_state.dart b/lib/base_state.dart index 916e047a..74dd3e55 100644 --- a/lib/base_state.dart +++ b/lib/base_state.dart @@ -6,6 +6,9 @@ import 'package:shared_preferences/shared_preferences.dart'; abstract class BaseState extends State with WidgetsBindingObserver { + + int lastTime = DateTime.now().millisecondsSinceEpoch; + @override void dispose() { super.dispose(); @@ -20,8 +23,11 @@ abstract class BaseState extends State break; case AppLifecycleState.resumed: //从后台切换前台,界面可见 pushRoute(); + if(DateTime.now().millisecondsSinceEpoch - lastTime > 300000) + Navigator.of(context).popAndPushNamed('/router/main_page'); break; case AppLifecycleState.paused: // 界面不可见,后台 + lastTime = DateTime.now().millisecondsSinceEpoch; break; case AppLifecycleState.detached: // APP结束时调用 break; @@ -49,41 +55,41 @@ abstract class BaseState extends State if (pushMap != null) { String routeName = ""; Map params = {}; - switch (pushMap["typed"]) { - case 1: - routeName = "/router/store_detail_page"; - params["articleId"] = pushMap["info"]; - break; - case 2: - routeName = "/router/store_detail_page"; - params["activityId"] = pushMap["info"]; - break; - case 3: - routeName = "/router/store_order"; - params["id"] = pushMap["info"]; - params["tenant"] = pushMap["tenant"]; - params["storeName"] = pushMap["storeName"]; - break; - case 4: - routeName = "/router/integral_store_page"; - params["goodsId"] = pushMap["info"]; - break; - case 5: - routeName = "/router/order_details"; - params["id"] = pushMap["info"]; - break; - case 6: - routeName = "/router/community_details"; - params["businessId"] = pushMap["info"]; - break; - case 8: - routeName = "/router/mine_wallet"; - params["id"] = pushMap["info"]; - break; - case 9: - routeName = "/router/welfare_page"; - params["id"] = pushMap["info"]; - break; + switch (pushMap["typed"].toString()) { + case "1":case "ARTICLE": + routeName = "/router/web_page"; + params["articleId"] = pushMap["info"]; + break; + case "2":case "ACTIVITY": + routeName = "/router/web_page"; + params["activityId"] = pushMap["info"]; + break; + case "3":case "SHOP": + routeName = "/router/store_order"; + params["id"] = pushMap["info"]; + params["tenant"] = pushMap["tenant"]; + params["storeName"] = pushMap["storeName"]; + break; + case "4":case "CREDIT_GOODS": + routeName = "/router/integral_store_page"; + params["goodsId"] = pushMap["info"]; + break; + case "5":case "ORDER": + routeName = "/router/order_details"; + params["id"] = pushMap["info"]; + break; + case "6":case "MEMBER": + routeName = "/router/community_details"; + params["businessId"] = pushMap["info"]; + break; + case "8":case "WALLET": + routeName = "/router/mine_wallet"; + params["id"] = pushMap["info"]; + break; + case "9":case "WELFARE": + routeName = "/router/welfare_page"; + params["id"] = pushMap["info"]; + break; } sharedPreferences.setString("pushData", ""); print("xgPushClickAction: routeName: $routeName"); diff --git a/lib/main_page.dart b/lib/main_page.dart index 85b3f8e2..18c3518f 100644 --- a/lib/main_page.dart +++ b/lib/main_page.dart @@ -57,7 +57,7 @@ class _MainPage extends State with WidgetsBindingObserver { final GlobalKey vipPageKey = GlobalKey(); // List iconn; ApiService apiService; - + int lastTime = DateTime.now().millisecondsSinceEpoch; @override void dispose() { @@ -73,8 +73,11 @@ class _MainPage extends State with WidgetsBindingObserver { break; case AppLifecycleState.resumed: //从后台切换前台,界面可见 pushRoute(); + if(DateTime.now().millisecondsSinceEpoch - lastTime > 300000) + Navigator.of(context).popAndPushNamed('/router/main_page'); break; case AppLifecycleState.paused: // 界面不可见,后台 + lastTime = DateTime.now().millisecondsSinceEpoch; break; case AppLifecycleState.detached: // APP结束时调用 break; @@ -224,7 +227,7 @@ class _MainPage extends State with WidgetsBindingObserver { ); } - /// @typed: 1文章 2活动 3店铺 4积分商品 5订单 6动态 7用户 8平台余额/钱包 9福利中心 + /// @typed: ARTICLE(1)文章 ACTIVITY(2)活动 SHOP(3)店铺 CREDIT_GOODS(4)积分商品 ORDER(5)订单 TREND(6)动态 MEMBER(7)用户 WALLET(8)平台余额/钱包 WELFARE(9)福利中心 xgFlutterPlugin.addEventHandler(xgPushClickAction: (event) async { print("xgPushClickAction1: $event"); if (event["actionType"] == 2) return event; @@ -288,38 +291,38 @@ class _MainPage extends State with WidgetsBindingObserver { if (pushMap != null) { String routeName = ""; Map params = {}; - switch (pushMap["typed"]) { - case 1: + switch (pushMap["typed"].toString()) { + case "1":case "ARTICLE": routeName = "/router/web_page"; params["articleId"] = pushMap["info"]; break; - case 2: + case "2":case "ACTIVITY": routeName = "/router/web_page"; params["activityId"] = pushMap["info"]; break; - case 3: + case "3":case "SHOP": routeName = "/router/store_order"; params["id"] = pushMap["info"]; params["tenant"] = pushMap["tenant"]; params["storeName"] = pushMap["storeName"]; break; - case 4: + case "4":case "CREDIT_GOODS": routeName = "/router/integral_store_page"; params["goodsId"] = pushMap["info"]; break; - case 5: + case "5":case "ORDER": routeName = "/router/order_details"; params["id"] = pushMap["info"]; break; - case 6: + case "6":case "MEMBER": routeName = "/router/community_details"; params["businessId"] = pushMap["info"]; break; - case 8: + case "8":case "WALLET": routeName = "/router/mine_wallet"; params["id"] = pushMap["info"]; break; - case 9: + case "9":case "WELFARE": routeName = "/router/welfare_page"; params["id"] = pushMap["info"]; break; diff --git a/lib/order/order_detail_page.dart b/lib/order/order_detail_page.dart index 0d9344aa..37d61db5 100644 --- a/lib/order/order_detail_page.dart +++ b/lib/order/order_detail_page.dart @@ -167,7 +167,9 @@ class _OrderDetailPage extends State { controller: refreshController, enablePullDown: true, enablePullUp: false, - header: MyHeader(), + header: MyHeader( + color: Colors.white, + ), footer: CustomFooter( builder: (context, mode) { return MyFooter(mode); diff --git a/lib/view_widget/classic_header.dart b/lib/view_widget/classic_header.dart index 1bb7cccc..c744ceef 100644 --- a/lib/view_widget/classic_header.dart +++ b/lib/view_widget/classic_header.dart @@ -11,6 +11,9 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:rive/rive.dart'; class MyHeader extends StatelessWidget { + final Color color; + MyHeader({this.color}); + @override Widget build(BuildContext context) { return MyClassicHeader( @@ -22,11 +25,11 @@ class MyHeader extends StatelessWidget { idleText: S.of(context).xialashuaxin, iconPos: IconPosition.left, completeTextStyle: TextStyle( - color: Color(0xFF32A060), + color:color?? Color(0xFF32A060), ), completeIcon: Icon( Icons.done, - color: Color(0xFF32A060), + color: color??Color(0xFF32A060), ), refreshingIcon: SpinKitCircle( color: Colors.grey,