TheRouter iOS 开源项目使用教程
1. 项目介绍
TheRouter 是一个用于 iOS 模块间解耦和通信的开源框架。它基于 Swift 协议进行动态懒加载注册路由与打开路由,同时支持通过 Service-Protocol 寻找对应的模块,并进行依赖注入和模块通信。TheRouter 帮助开发者实现模块的解耦,提高代码的可维护性和可扩展性。
2. 项目快速启动
安装依赖
首先,确保你的项目已经配置了 CocoaPods。然后在你的 Podfile 中添加以下代码:
pod 'TheRouter', '1.1.8'
接着,执行 pod install 命令安装依赖。
初始化 TheRouter
在你的应用启动时,初始化 TheRouter:
import TheRouter
// 日志回调,可以监控线上路由运行情况
TheRouter.logcat = { url, logType, errorMsg in
debugPrint("TheRouter: logMsg-\(url)\(logType.rawValue)\(errorMsg)")
}
// 路由懒加载注册
TheRouter.lazyRegisterRouterHandle = { url, userInfo in
// 在这里进行路由的动态注册
return TheRouterManager.addGloableRouter(true, url, userInfo, forceCheckEnable: true)
}
// 动态注册服务
TheRouterManager.registerServices(excludeCocoapods: false)
注册路由
自动化注册:如果你的控制器已经实现了 TheRouterable 协议,那么无需手动添加路由。
extension YourViewController: TheRouterable {
static var patternString: [String] {
return ["scheme://router/yourviewcontroller"]
}
}
手动单个注册:
TheRouter.addRouterItem(RouteItem(
path: "scheme://router/yourviewcontroller",
className: "YourModule.YourViewController",
desc: "手动注册路由"
))
打开路由
使用 TheRouter 打开路由:
TheRouter.openURL("scheme://router/yourviewcontroller")
3. 应用案例和最佳实践
跨模块调用
在跨模块调用时,可以使用 TheRouterApi 类来实现。例如:
class TheRouterApi {
static func openYourViewController() {
let url = "scheme://router/yourviewcontroller"
TheRouter.openURL(url)
}
}
// 在其他模块中调用
TheRouterApi.openYourViewController()
路由参数传递
可以通过 URL 参数的方式传递数据:
TheRouter.openURL("scheme://router/yourviewcontroller?param1=value1¶m2=value2")
然后在目标控制器中获取这些参数:
class YourViewController: UIViewController, TheRouterable {
static var patternString: [String] {
return ["scheme://router/yourviewcontroller"]
}
override func viewDidLoad() {
super.viewDidLoad()
// 获取参数
if let params = TheRouterManager.parameters(from: self) {
print(params)
}
}
}
4. 典型生态项目
目前,TheRouter 已经在多个实际项目中得到应用,包括但不限于:
- 模块化架构:在模块化架构的项目中,使用 TheRouter 实现模块之间的解耦和通信。
- 组件化开发:在组件化开发的项目中,利用 TheRouter 管理各个组件之间的路由关系。
- 混合开发:在混合开发的项目中,使用 TheRouter 实现原生与 H5 页面之间的跳转和通信。
这些项目案例展示了 TheRouter 在不同场景下的灵活性和强大功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



