RouterManager.swift 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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"))
  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(UMPushRouterModuleType.pushPostContent(id: pushModel.actionId ?? 0))
  45. break
  46. case .video?: //视频帖子
  47. Mediator.push(UMPushRouterModuleType.pushVideoContent(id: pushModel.actionId ?? 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. break
  77. case .none?:
  78. break
  79. default:
  80. break
  81. }
  82. }
  83. }