NYSwRouter.swift 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. //
  2. // NYSwRouter.swift
  3. // JSJP_Student_sw
  4. //
  5. // Created by Ning.ge on 2023/5/30.
  6. //
  7. import UIKit
  8. import URLNavigator
  9. enum NYSwPushType {
  10. case trainee_info
  11. case trainee_search
  12. case trainee_list
  13. case trainee_list_biand
  14. case mine_center
  15. case mine_uppassword
  16. case mine_switchaccount
  17. case trainee_list_school
  18. case trainee_statistics
  19. case trainee_statistics_official
  20. case coach_qrcode
  21. case coach_qrcode_download
  22. case login_biand_wx
  23. }
  24. enum NYSwOpenType: String {
  25. case uprotocol = "https://ys.zzxcx.net/xy_jsjp.html"
  26. case all = "http://live.bilibili.com/app/all-live/"
  27. case traineetab = "JiaPeiManage://app/traineetab"
  28. case login = "JiaPeiManage://app/login"
  29. }
  30. extension NYSwPushType {
  31. var path:String {
  32. switch self {
  33. case .trainee_info:
  34. return "JiaPeiManage://me/trainee/info"
  35. case .trainee_list:
  36. return "JiaPeiManage://me/trainee/list"
  37. case .trainee_list_biand:
  38. return "JiaPeiManage://me/trainee/list/biand"
  39. case .trainee_search:
  40. return "JiaPeiManage://me/trainee/search"
  41. case .trainee_list_school:
  42. return "JiaPeiManage://me/trainee/list/school"
  43. case .mine_center:
  44. return "JiaPeiManage://mine/center"
  45. case .mine_uppassword:
  46. return "JiaPeiManage://mine/updatepassword"
  47. case .mine_switchaccount:
  48. return "JiaPeiManage://mine/switchaccount"
  49. case .trainee_statistics:
  50. return "JiaPeiManage://me/trainee/statistics"
  51. case .trainee_statistics_official:
  52. return "JiaPeiManage://me/trainee/statistics/official"
  53. case .coach_qrcode:
  54. return "JiaPeiManage://me/coach/qrcode"
  55. case .coach_qrcode_download:
  56. return "JiaPeiManage://me/coach/qrcode/download"
  57. case .login_biand_wx:
  58. return "JiaPeiManage://login/coach/biand/wx"
  59. }
  60. }
  61. }
  62. class NYSwRouter {
  63. @discardableResult
  64. class func push(_ type:NYSwPushType, context: Any? = nil) -> UIViewController? {
  65. return navigator.push(type.path, context: context)
  66. }
  67. @discardableResult
  68. class func push(_ url:String) -> UIViewController? {
  69. return navigator.push(url)
  70. }
  71. @discardableResult
  72. class func open(_ url:String) -> Bool? {
  73. guard let header = url.components(separatedBy: "?").first,
  74. let _ = NYSwOpenType(rawValue: header)
  75. else {
  76. NYSwToaster.show("需要跳转的路径未找到,请先注册!")
  77. return nil
  78. }
  79. return navigator.open(url)
  80. }
  81. }