Router 1.0.0

Router 1.0.0

测试已测试
Lang语言 SwiftSwift
许可证 Apache 2
发布最后发布2015年10月
SPM支持 SPM

Aaron HarmonMartino Buffolino维护。



Router 1.0.0

  • 作者
  • Martino Buffolino

Router

一个用Swift编写的微路由库,主要用于深链接用例

安装

内嵌框架要求最低部署目标为iOS 8。

可以通过手动操作或通过Cocoapods进行集成

要求

  • iOS 8.0+
  • Xcode 7.1
  • Swift 2.0
  • Cocoapods 0.36+ (可选)

简单用法

import Router

// create your router
let router = Router()

// bind your routes with a callback
router.bind("/route/:id") { (req) -> Void in
    print(req.param("id")!)
}

// match a route
let url = NSURL(string: "routerapp://route/abc123")!
let route = router.match(url)

路由绑定

将闭包绑定到路由定义

router.bind("/route/:id") { (req) -> Void in
    print(req.param("id")!)
}

路由匹配

将传入的URL与Router中的路由进行匹配。如果匹配成功,将执行闭包并返回匹配的路由

let url = NSURL(string: "routerapp://route/abc123")!
let route = router.match(url)

请求对象

请求对象可以在闭包参数中访问。通过使用.param()函数在闭包中访问URL参数(例如,从/route/:id中的id)

router.bind("/route/:id") { (req) -> Void in
    let id = req.param("id")!
}

通过使用.query()函数从回调中访问查询字符串参数(例如,/route/123?foo=bar)

router.bind("/route/:id") { (req) -> Void in
    let foo = req.query("foo")! 
}

深链接到示例应用

  • 安装RouterExample应用
  • 关闭应用
  • 打开safari
  • 在地址栏中输入routerapp://route/one以访问视图一
  • 退出应用
  • 在地址栏中输入routerapp://route/one/abc123以访问视图二

发现bug了吗?

  • 打开一个问题
  • 编写测试以重现问题
  • 修复问题
  • 发送Pull Request

想要特性请求吗?

  • 打开一个问题
  • 围绕新特性编写测试
  • 实现特性
  • 发送Pull Request

许可证

许可协议为Apache License,版本2.0。有关详细信息,请参阅LICENSE文件。