NYSwRouter.swift 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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 trainee_estu_log
  15. case trainee_estu_log_photo
  16. case mine_center
  17. case mine_uppassword
  18. case mine_switchaccount
  19. case trainee_list_school
  20. case trainee_statistics
  21. case trainee_statistics_official
  22. case trainee_statistics_stulist
  23. case coach_qrcode
  24. case coach_qrcode_download
  25. case login_biand_wx
  26. }
  27. enum NYSwOpenType: String {
  28. case uprotocol = "https://ys.zzxcx.net/xy_jsjp.html"
  29. case all = "http://live.bilibili.com/app/all-live/"
  30. case traineetab = "JiaPeiManage://app/traineetab"
  31. case login = "JiaPeiManage://app/login"
  32. }
  33. extension NYSwPushType {
  34. var path:String {
  35. switch self {
  36. case .trainee_info:
  37. return "JiaPeiManage://me/trainee/info"
  38. case .trainee_list:
  39. return "JiaPeiManage://me/trainee/list"
  40. case .trainee_list_biand:
  41. return "JiaPeiManage://me/trainee/list/biand"
  42. case .trainee_estu_log:
  43. return "JiaPeiManage://me/trainee/estu/log"
  44. case .trainee_estu_log_photo:
  45. return "JiaPeiManage://me/trainee/estu/log/photo"
  46. case .trainee_search:
  47. return "JiaPeiManage://me/trainee/search"
  48. case .trainee_list_school:
  49. return "JiaPeiManage://me/trainee/list/school"
  50. case .mine_center:
  51. return "JiaPeiManage://mine/center"
  52. case .mine_uppassword:
  53. return "JiaPeiManage://mine/updatepassword"
  54. case .mine_switchaccount:
  55. return "JiaPeiManage://mine/switchaccount"
  56. case .trainee_statistics:
  57. return "JiaPeiManage://me/trainee/statistics"
  58. case .trainee_statistics_official:
  59. return "JiaPeiManage://me/trainee/statistics/official"
  60. case .trainee_statistics_stulist:
  61. return "JiaPeiManage://me/trainee/statistics/stulist"
  62. case .coach_qrcode:
  63. return "JiaPeiManage://me/coach/qrcode"
  64. case .coach_qrcode_download:
  65. return "JiaPeiManage://me/coach/qrcode/download"
  66. case .login_biand_wx:
  67. return "JiaPeiManage://login/coach/biand/wx"
  68. }
  69. }
  70. }
  71. class NYSwRouter {
  72. @discardableResult
  73. class func push(_ type:NYSwPushType, context: Any? = nil) -> UIViewController? {
  74. return navigator.push(type.path, context: context)
  75. }
  76. @discardableResult
  77. class func push(_ url:String) -> UIViewController? {
  78. return navigator.push(url)
  79. }
  80. @discardableResult
  81. class func open(_ url:String) -> Bool? {
  82. guard let header = url.components(separatedBy: "?").first,
  83. let _ = NYSwOpenType(rawValue: header)
  84. else {
  85. NYSwToaster.show("需要跳转的路径未找到,请先注册!")
  86. return nil
  87. }
  88. return navigator.open(url)
  89. }
  90. }