RouterManager.swift 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. //
  2. // RouterManner.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/7/5.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. import SwiftyMediator
  10. class RouterManager: NSObject {
  11. static let shared : RouterManager = RouterManager()
  12. /// 打开App
  13. ///
  14. /// - Parameter url:
  15. /// - Returns:
  16. func handleOpen(url:URL) -> Bool {
  17. if url.host == "home" { //社区
  18. let dict = urlStringtoParams(url.absoluteString)
  19. let openAppModel = OpenAppModel(JSON: dict)
  20. if openAppModel?.openAppModelType == OpenAppModel.OpenAppModelType.community {
  21. if openAppModel?.postId != nil {
  22. switch PostType(rawValue: openAppModel?.postType ?? "image") {
  23. case .image?,.html?:
  24. Mediator.push(CommunityRouterModuleType.pushPostDetailContent(postId: openAppModel?.postId ?? "0"))
  25. break
  26. case .video?:
  27. Mediator.push(CommunityRouterModuleType.pushPostDetailVoide(postId: openAppModel?.postId ?? "0", departType: .others, topicId: 0))
  28. break
  29. default:
  30. break
  31. }
  32. }
  33. }else if openAppModel?.openAppModelType == OpenAppModel.OpenAppModelType.offline {
  34. Mediator.push(H5RouterModuleType.pushOfflineDetail(id: openAppModel?.offlineId ?? ""))
  35. }
  36. return true
  37. }
  38. return false
  39. }
  40. /// 友盟推送跳转
  41. ///
  42. /// - Parameter pushModel: 推送的模型
  43. func UMPush(pushModel:PushModel) {
  44. switch pushModel.pushActionType {
  45. case .post?:
  46. switch pushModel.pushPostType {//图文帖子
  47. case .image?,.html?:
  48. Mediator.push(CommunityRouterModuleType.pushPostDetailContent(postId: "\(pushModel.actionId ?? 0)"))
  49. break
  50. case .video?: //视频帖子
  51. Mediator.push(CommunityRouterModuleType.pushPostDetailVoide(postId: "\(pushModel.actionId ?? 0)", departType: .others, topicId: 0))
  52. break
  53. default:
  54. break
  55. }
  56. break
  57. case .recommend?: //推荐
  58. let vc = UIViewController.topMost
  59. let v1 = baseTabbarViewController?.v1
  60. v1?.reloadSegmentedView()
  61. v1?.tabBarController?.selectedIndex = 0
  62. if vc?.presentingViewController != nil {
  63. vc?.dismissToWindowRootViewController(animated: false, completion: {
  64. })
  65. } else {
  66. vc?.navigationController?.popToRootViewController(animated: false)
  67. }
  68. break
  69. case .star?: //星球
  70. let vc = UIViewController.topMost
  71. let v1 = baseTabbarViewController?.v1
  72. v1?.reloadSegmentedStarView()
  73. v1?.tabBarController?.selectedIndex = 0
  74. if vc?.presentingViewController != nil {
  75. vc?.dismissToWindowRootViewController(animated: false, completion: {
  76. })
  77. } else {
  78. vc?.navigationController?.popToRootViewController(animated: false)
  79. }
  80. case .activity?: //活动
  81. Mediator.push(H5RouterModuleType.pushActivityId(id: "\(pushModel.actionId ?? 0)"))
  82. break
  83. case .product?: //商品
  84. Mediator.push(H5RouterModuleType.pushDetail(id: "\(pushModel.actionId ?? 0)"))
  85. break
  86. case .followMessage?: // 跳转到关注通知消息
  87. if !UserModel.isTokenNil() {
  88. Mediator.push(MessageRouterModuleType.messageList(messageVCType: MessageListVCType.follow, messageShowTypes: "12"))
  89. }
  90. break
  91. case .activityOffline?: // 跳转到活动列表
  92. Mediator.push(H5RouterModuleType.pushOffline)
  93. break
  94. case .none?:
  95. break
  96. default:
  97. break
  98. }
  99. }
  100. }