RouterManager.swift 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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?.postId != nil {
  21. switch PostType(rawValue: openAppModel?.postType ?? "image") {
  22. case .image?,.html?:
  23. Mediator.push(CommunityRouterModuleType.pushPostDetailContent(postId: openAppModel?.postId ?? "0"))
  24. break
  25. case .video?:
  26. Mediator.push(CommunityRouterModuleType.pushPostDetailVoide(postId: openAppModel?.postId ?? "0", departType: .others, topicId: 0))
  27. break
  28. default:
  29. break
  30. }
  31. }
  32. return true
  33. }
  34. return false
  35. }
  36. /// 友盟推送跳转
  37. ///
  38. /// - Parameter pushModel: 推送的模型
  39. func UMPush(pushModel:PushModel) {
  40. switch pushModel.pushActionType {
  41. case .post?:
  42. switch pushModel.pushPostType {//图文帖子
  43. case .image?,.html?:
  44. Mediator.push(CommunityRouterModuleType.pushPostDetailContent(postId: "\(pushModel.actionId ?? 0)"))
  45. break
  46. case .video?: //视频帖子
  47. Mediator.push(CommunityRouterModuleType.pushPostDetailVoide(postId: "\(pushModel.actionId ?? 0)", departType: .others, topicId: 0))
  48. break
  49. default:
  50. break
  51. }
  52. break
  53. case .recommend?: //推荐
  54. let vc = UIViewController.topMost
  55. let v1 = BaseTabbarViewController.shared.v1
  56. v1?.reloadSegmentedView()
  57. v1?.tabBarController?.selectedIndex = 0
  58. if vc?.presentingViewController != nil {
  59. vc?.dismissToWindowRootViewController(animated: false, completion: {
  60. })
  61. } else {
  62. vc?.navigationController?.popToRootViewController(animated: false)
  63. }
  64. break
  65. case .star?: //星球
  66. let vc = UIViewController.topMost
  67. let v1 = BaseTabbarViewController.shared.v1
  68. v1?.reloadSegmentedStarView()
  69. v1?.tabBarController?.selectedIndex = 0
  70. if vc?.presentingViewController != nil {
  71. vc?.dismissToWindowRootViewController(animated: false, completion: {
  72. })
  73. } else {
  74. vc?.navigationController?.popToRootViewController(animated: false)
  75. }
  76. case .activity?: //活动
  77. Mediator.push(H5RouterModuleType.pushActivityId(id: "\(pushModel.actionId ?? 0)"))
  78. break
  79. case .product?: //商品
  80. Mediator.push(H5RouterModuleType.pushDetail(id: "\(pushModel.actionId ?? 0)"))
  81. break
  82. case .followMessage?: // 跳转到关注通知消息
  83. if !UserModel.isTokenNil() {
  84. Mediator.push(MessageRouterModuleType.messageList(messageVCType: MessageListVCType.follow, messageShowTypes: "12"))
  85. }
  86. break
  87. case .activityOffline?: // 跳转到活动列表
  88. Mediator.push(H5RouterModuleType.pushOffline)
  89. break
  90. case .none?:
  91. break
  92. default:
  93. break
  94. }
  95. }
  96. }