NYSwRouter.swift 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 mine_center
  14. case mine_uppassword
  15. case trainee_list_school
  16. case trainee_statistics
  17. }
  18. enum NYSwOpenType: String {
  19. case uprotocol = "https://ys.zzxcx.net/xy_jsjp.html"
  20. case all = "http://live.bilibili.com/app/all-live/"
  21. case traineetab = "JiaPeiManage://app/traineetab"
  22. case login = "JiaPeiManage://app/login"
  23. }
  24. extension NYSwPushType {
  25. var path:String {
  26. switch self {
  27. case .trainee_info:
  28. return "JiaPeiManage://me/trainee/info"
  29. case .trainee_list:
  30. return "JiaPeiManage://me/trainee/list"
  31. case .trainee_search:
  32. return "JiaPeiManage://me/trainee/search"
  33. case .trainee_list_school:
  34. return "JiaPeiManage://me/trainee/list/school"
  35. case .mine_center:
  36. return "JiaPeiManage://mine/center"
  37. case .mine_uppassword:
  38. return "JiaPeiManage://mine/updatepassword"
  39. case .trainee_statistics:
  40. return "JiaPeiManage://me/trainee/statistics"
  41. }
  42. }
  43. }
  44. class NYSwRouter {
  45. @discardableResult
  46. class func push(_ type:NYSwPushType, context: Any? = nil) -> UIViewController? {
  47. return navigator.push(type.path, context: context)
  48. }
  49. @discardableResult
  50. class func push(_ url:String) -> UIViewController? {
  51. return navigator.push(url)
  52. }
  53. @discardableResult
  54. class func open(_ url:String) -> Bool? {
  55. guard let header = url.components(separatedBy: "?").first,
  56. let _ = NYSwOpenType(rawValue: header)
  57. else {
  58. NYSwToaster.show("需要跳转的路径未找到,请先注册!")
  59. return nil
  60. }
  61. return navigator.open(url)
  62. }
  63. }