海军
这是一个工具,可以轻松观察和可视化我们在实时跟踪的每个路由和流程。
如果您已配置要显示的信息,当您的鼠标指针悬停在每个节点文本上时,将显示一个提示视图。
意图
对于大型应用程序,有时很难检查和调试我们在使用的路由,一旦我们在某个地方点击,会发生什么反应。为了轻松检查这些场景是否满足预期,这个工具被创建出来以满足这一需求。
入门
这个 Navy
框架有一个demo应用程序,你可以按照以下步骤直接运行它,看看它的外观和运行方式。但是,如果你想要将其集成到你的项目中,你必须将 BundleId
替换为 你的项目 BundleId 中的 run-navy.sh
脚本,并将其移动到你的项目文件夹中。
先决条件
- 安装npm
brew install node
- 安装Browsersync
npm install -g browser-sync
运行示例应用
如果您想运行示例应用,只需将 cd
切换到 Navy
项目路径并执行 pod install
,然后您需要首先运行示例应用,再执行下面的命令。
./run-navy.sh
集成
Cocoapods
Navy
已在 Cocoapods!在项目中设置 Cocoapods 后,只需在 Podfile 中添加以下内容
pod 'Navy'
然后在包含 Podfile 的目录中运行 pod install
!
在使用 Navy
时,别忘了导入它。
NaviProtocol
遵守 class Navigation: NaviProtocol {
// Return root node name
func rootNodeName() -> String {
return "Navy"
}
// Return tabBar controllers
func tabBarViewControllers() -> [String] {
return ["NavyDemo.FavoriteViewController", "NavyDemo.DownloadViewController", "NavyDemo.HistoryViewController"]
}
// Map the business logic document link to corresponding node
func mapBusinessLogicDocument() -> [String: String] {
return ["NavyDemo.FavoriteViewController": "https://en.wikipedia.org/wiki/Marie_Curie",
"NavyDemo.ListViewController": "https://en.wikipedia.org/wiki/Albert_Einstein",
"NavyDemo.DetailViewController": "https://en.wikipedia.org/wiki/Tu_Youyou",
"NavyDemo.SettingViewController": "https://en.wikipedia.org/wiki/Alan_Turing",
"NavyDemo.DownloadViewController": "https://en.wikipedia.org/wiki/Main_Page"]
}
}
注意:如果您使用自定义导航,需要实现两个可选协议。
func currentController() -> UIViewController {
// Return current controller
}
func previousController() -> UIViewController {
// Return previous controller
}
最后,调用 setup(with:)
方法并传递实现了 NaviProtocol
的实例。
NaviHeader.shared.setup(with: Navigation())
运行您的项目
在执行下面的命令之前,请先运行您的项目。
BundleId
,并将脚本移入您的项目中。
./run-navy.sh
待办事项
- 支持网页上动态显示调用堆栈
- 支持通过单击节点上的文本进行页面跳转
- 映射业务逻辑文档
- 显示历史路径
- 适应移动屏幕
- 监控网络
需求
- Swift 4.2+
- iOS 11.0+
参与贡献
欢迎使用拉取请求、特性请求和错误报告