diff --git a/lib/main.dart b/lib/main.dart index 8cb28d6..9ee2f2b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -167,6 +167,12 @@ class MyAppState extends State { UserManager.instance.openInstallGoodsId.value = !UserManager.instance.openInstallGoodsId.value; } + if (decode.containsKey("type")) { + store.state.openinstall.type = decode['type']; + store.state.openinstall.itemId = decode['itemId']; + UserManager.instance.openInstallLive.value = + !UserManager.instance.openInstallLive.value; + } } catch (e) {} } store.state.openinstall.channelCode = data['channelCode']; diff --git a/lib/manager/user_manager.dart b/lib/manager/user_manager.dart index dd951b4..a5f5e37 100644 --- a/lib/manager/user_manager.dart +++ b/lib/manager/user_manager.dart @@ -46,6 +46,8 @@ class UserManager { ValueNotifier selectTabbar = ValueNotifier(false); //从webview扫描返回通知 ValueNotifier openInstallGoodsId = ValueNotifier(false); + + ValueNotifier openInstallLive = ValueNotifier(false); int selectTabbarIndex; bool get haveLogin => login.value; diff --git a/lib/pages/home/home_page.dart b/lib/pages/home/home_page.dart index eaeccf9..d54ed3d 100644 --- a/lib/pages/home/home_page.dart +++ b/lib/pages/home/home_page.dart @@ -40,6 +40,7 @@ import 'package:recook/pages/home/widget/goods_list_temp_page.dart'; import 'package:recook/pages/home/widget/home_countdown_widget.dart'; import 'package:recook/pages/home/widget/home_sliver_app_bar.dart'; import 'package:recook/pages/home/widget/home_weather_view.dart'; +import 'package:recook/pages/live/live_stream/live_stream_view_page.dart'; import 'package:recook/pages/noticeList/notice_list_model.dart'; import 'package:recook/pages/noticeList/notice_list_tool.dart'; import 'package:recook/third_party/wechat/wechat_utils.dart'; @@ -150,6 +151,27 @@ class _HomePageState extends BaseStoreState UserManager.instance.openInstallGoodsId .addListener(_openInstallGoodsIdListener); + + UserManager.instance.openInstallLive.addListener(() { + if (getStore().state.openinstall.type == 'live') { + CRoute.push( + context, + LiveStreamViewPage( + id: int.parse(getStore().state.openinstall.itemId))); + } + if (!TextUtils.isEmpty(getStore().state.openinstall.type)) { + int goodsid = 0; + try { + goodsid = int.parse(getStore().state.openinstall.goodsid); + } catch (e) { + getStore().state.openinstall.goodsid = ""; + return; + } + AppRouter.push(context, RouteName.COMMODITY_PAGE, + arguments: CommodityDetailPage.setArguments(goodsid)); + getStore().state.openinstall.goodsid = ""; + } + }); _updateSource(); _sliverListController = ScrollController(); _gsRefreshController = GSRefreshController(); diff --git a/lib/redux/openinstall_state.dart b/lib/redux/openinstall_state.dart index f91b321..f04e56b 100644 --- a/lib/redux/openinstall_state.dart +++ b/lib/redux/openinstall_state.dart @@ -1,14 +1,15 @@ - import 'package:redux/redux.dart'; -class Openinstall{ - String channelCode; - String bindData; - String code; - String goodsid; - String date; +class Openinstall { + String channelCode; + String bindData; + String code; + String goodsid; + String date; + String type; + String itemId; Openinstall(this.channelCode, this.bindData); - + Openinstall.empty() { this.channelCode = ""; this.bindData = ""; @@ -17,17 +18,15 @@ class Openinstall{ } } -final OpeninstallReducer = combineReducers([ - TypedReducer(UpdateOpeninstall) - ]); - +final OpeninstallReducer = combineReducers( + [TypedReducer(UpdateOpeninstall)]); Openinstall UpdateOpeninstall(Openinstall openinstall, action) { openinstall = action.openinstall; return openinstall; } -class UpdateOpeninstallAction{ +class UpdateOpeninstallAction { final Openinstall openinstall; UpdateOpeninstallAction(this.openinstall); }