TheRouter iOS 开源项目使用教程

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&param2=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),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值