ASJumpHandler.m 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. //
  2. // ASJumpHandler.m
  3. // Asteria
  4. //
  5. // Created by xingyu on 2024/7/12.
  6. //
  7. #import "ASJumpHandler.h"
  8. #import "ASOrderListViewController.h"
  9. #import "Cart_MyCartC.h"
  10. #import "ASMessageListViewController.h"
  11. #import "ASProductListViewController.h"
  12. #import "ASGoodsDetailsViewController.h"
  13. #import "ASPointsHomeViewController.h"
  14. #import "ASVipCenterViewController.h"
  15. #import "ASCouponsListViewController.h"
  16. @implementation ASJumpHandler
  17. static ASJumpHandler *jumpHandler = nil;
  18. + (instancetype)shareInstance{
  19. static dispatch_once_t onceToken;
  20. dispatch_once(&onceToken, ^{
  21. jumpHandler = [[ASJumpHandler alloc] init];
  22. });
  23. return jumpHandler;
  24. }
  25. - (void)handleMessage:(NSString *)title messageId:(NSString *)mid pushPara:(NSString *)push_para pushType:(NSInteger)type {
  26. [self handleJumpWithTitle:title jumpData:push_para type:type];
  27. }
  28. - (void)handleJumpWithTitle:(NSString *)title jumpData:(NSString *)jumpData type:(NSInteger)type {
  29. UIViewController *topVC = topViewController();
  30. /// 跳转类型 0:url 1:商品列表 2:订单列表 3:商品详情 4:购物车 5:消息列表
  31. /// 2024-02-27新增: 6.explore首页 7.explore详情 8.我的积分 9.koc 10.vip Center 11.我的优惠券 12. 登录注册, 13.签到 14.首页
  32. switch (type) {
  33. case 0:
  34. [Fuction_Tool push_BaseWebUrl:jumpData webTitle:title];
  35. break;
  36. case 1:
  37. [self pushToProductList:title typeid:jumpData];
  38. break;
  39. case 2:
  40. {
  41. if (!ASUserInfoManager.shared.isLogin) {
  42. [Fuction_Tool pop_toLoginVC];
  43. return;
  44. }
  45. if (![topVC isKindOfClass:[ASOrderListViewController class]]) {
  46. ASOrderListViewController *orderC = [[ASOrderListViewController alloc] init];
  47. [topVC.navigationController pushViewController:orderC animated:true];
  48. }
  49. }
  50. break;
  51. case 3:
  52. [self goto_WKM_GoodsDetailsC:jumpData];
  53. break;
  54. case 4:
  55. {
  56. if (![topVC isKindOfClass:[Cart_MyCartC class]]) {
  57. Cart_MyCartC *cartC = [[Cart_MyCartC alloc]init];
  58. [topVC.navigationController pushViewController:cartC animated:true];
  59. }
  60. }
  61. break;
  62. case 5: {
  63. if (!ASUserInfoManager.shared.isLogin) {
  64. [Fuction_Tool pop_toLoginVC];
  65. return;
  66. }
  67. if (![topVC isKindOfClass:[ASMessageListViewController class]]) {
  68. ASMessageListViewController *mesVC = [[ASMessageListViewController alloc]init];
  69. [topVC.navigationController pushViewController:mesVC animated:true];
  70. }
  71. }
  72. break;
  73. case 6:// explore列表
  74. {
  75. // [Fuction_Tool navPopRootToExpolerVC];
  76. }
  77. break;
  78. case 7:// explore详情
  79. {
  80. // [self goto_exploreDetailsC:push_para];
  81. }
  82. break;
  83. case 8:// 积分
  84. {
  85. if (!ASUserInfoManager.shared.isLogin) {
  86. [Fuction_Tool pop_toLoginVC];
  87. return;
  88. }
  89. [self to_pointsVc];
  90. }
  91. break;
  92. case 9:// koc
  93. {
  94. if (!ASUserInfoManager.shared.isLogin) {
  95. [Fuction_Tool pop_toLoginVC];
  96. return;
  97. }
  98. [self to_KocVc];
  99. }
  100. break;
  101. case 10:// vip center
  102. {
  103. if (!ASUserInfoManager.shared.isLogin) {
  104. [Fuction_Tool pop_toLoginVC];
  105. return;
  106. }
  107. [self to_vipCenter];
  108. }
  109. break;
  110. case 11:// 我的优惠券
  111. {
  112. if (!ASUserInfoManager.shared.isLogin) {
  113. [Fuction_Tool pop_toLoginVC];
  114. return;
  115. }
  116. NSInteger index = jumpData.integerValue;
  117. [self to_couponsVc:index];
  118. }
  119. break;
  120. case 12://登录注册
  121. {
  122. [Fuction_Tool pop_toLoginVC];
  123. }
  124. break;
  125. case 13://签到
  126. {
  127. if (!ASUserInfoManager.shared.isLogin) {
  128. [Fuction_Tool pop_toLoginVC];
  129. return;
  130. }
  131. //跳转我的
  132. [Fuction_Tool popToRootViewController:3];
  133. }
  134. break;
  135. case 14:// 首页
  136. [Fuction_Tool popToHomeVc];
  137. break;
  138. default:
  139. if (jumpData.isValidUrl) {
  140. [Fuction_Tool push_BaseWebUrl:jumpData webTitle:title];
  141. }
  142. break;
  143. }
  144. }
  145. -(void)pushToProductList:(NSString *)name typeid:(NSString *)typeId {
  146. if (typeId == nil || [typeId isEqualToString:@""]) {
  147. return;
  148. }
  149. if (name == nil || [name isEqualToString:@""]) {
  150. name = @"Products";
  151. }
  152. ASProductListViewController *vc = [[ASProductListViewController alloc] init];
  153. vc.titleName = name;
  154. vc.type = typeId;
  155. [[Current_normalTool topViewController].navigationController pushViewController:vc animated:YES];
  156. }
  157. -(void)goto_WKM_GoodsDetailsC:(NSString *)entity_id {
  158. ASGoodsDetailsViewController *vc = [[ASGoodsDetailsViewController alloc]init];
  159. vc.entity_id = entity_id;
  160. [[Current_normalTool topViewController].navigationController pushViewController:vc animated:YES];
  161. }
  162. //// 跳explore详情
  163. //-(void)goto_exploreDetailsC:(NSString *)entity_id {
  164. // UIViewController *topC = [Current_normalTool topViewController];
  165. // if ([topC isKindOfClass:AP_ExploreDetailsC.class]) {
  166. // return;
  167. // }
  168. // AP_ExploreDetailsC *vc = [[AP_ExploreDetailsC alloc]init];
  169. // ExploreListM *m = [[ExploreListM alloc] init];
  170. // m.listId = entity_id;
  171. // vc.listModel = m;
  172. // [[Current_normalTool topViewController].navigationController pushViewController:vc animated:YES];
  173. //
  174. //}
  175. - (void)to_pointsVc {
  176. UIViewController *topC = [Current_normalTool topViewController];
  177. if ([topC isKindOfClass:ASPointsHomeViewController.class]) {
  178. return;
  179. }
  180. ASPointsHomeViewController *vc = [[ASPointsHomeViewController alloc] init];
  181. [topC.navigationController pushViewController:vc animated:true];
  182. }
  183. - (void)to_KocVc {
  184. // UIViewController *vc = [Current_normalTool topViewController];
  185. // if ([vc isKindOfClass:KWBrandAMBViewController.class] || [vc isKindOfClass:[APKocTotalViewController class]]) {
  186. // return;
  187. // }
  188. // UIWindow *w = UIApplication.sharedApplication.windows.firstObject;
  189. // [MBProgressHUD showHUDAddedTo:w animated:true];
  190. // __block BOOL hadPush = false;
  191. // [[KWBalanceInfoManager shareInstance] updateApplyStatus:^(BOOL flag) {
  192. // [MBProgressHUD hideHUDForView:w animated:true];
  193. // if (hadPush) {
  194. // return;
  195. // }
  196. // hadPush = true;
  197. // if (![KWBalanceInfoManager shareInstance].isApply) {
  198. // KWBrandAMBViewController *vc = [KWBrandAMBViewController new];
  199. // [[Current_normalTool topViewController].navigationController pushViewController:vc animated:true];
  200. // } else {
  201. // APKocTotalViewController *vc = [[APKocTotalViewController alloc] init];
  202. // [[Current_normalTool topViewController].navigationController pushViewController:vc animated:true];
  203. // }
  204. // }];
  205. }
  206. - (void)to_vipCenter {
  207. UIViewController *vc = [Current_normalTool topViewController];
  208. // [MBProgressHUD showHUDAddedTo:vc.view animated:true];
  209. // __block BOOL hadPush = false;
  210. //
  211. // [KWLoginedManager.shareInstance getAllLevelInfo:^(bool flag) {
  212. // if (hadPush) {
  213. // return;
  214. // }
  215. // hadPush = true;
  216. // [MBProgressHUD hideHUDForView:vc.view animated:true];
  217. // ASVipCenterViewController *vc = [[ASVipCenterViewController alloc] init];
  218. // vc.currentLeave = KWLoginedManager.shareInstance.levelInfo.level;
  219. // [[Current_normalTool topViewController].navigationController pushViewController:vc animated:true];
  220. // }];
  221. ASVipCenterViewController *vipCenterVC = [[ASVipCenterViewController alloc] init];
  222. // vipCenterVC.currentLeave = KWLoginedManager.shareInstance.levelInfo.level;
  223. [vc.navigationController pushViewController:vipCenterVC animated:true];
  224. }
  225. - (void)to_couponsVc:(NSInteger)index {
  226. ASCouponsListViewController *vc = [[ASCouponsListViewController alloc] init];
  227. [[Current_normalTool topViewController].navigationController pushViewController:vc animated:true];
  228. }
  229. @end