Rexxar Android 系列学习(2) 路由协议
2017-07-19 本文已影响168人
無名小子的杂货铺
Rexxar 中的路由协议是基础,也是每一个页面的入口和标志,通过 URL 来标识每一个页面。这样就可以根据 URL 找到一个 Rexxar Web 的对应资源来正确展示相应页面。
来看一下本地的 Json 路由表内容:
{
"items": [
{
"deploy_time": "Sun, 09 Oct 2016 05:54:22 GMT",
"remote_file": "https://raw.githubusercontent.com/douban/rexxar-web/master/example/dist/rexxar/demo-252452ae58.html",
"uri": "douban://douban.com/rexxar_demo[/]?.*"
}
],
"partial_items": [
{
"deploy_time": "Sun, 09 Oct 2016 05:54:22 GMT",
"remote_file": "https://raw.githubusercontent.com/douban/rexxar-web/master/example/dist/rexxar/demo-252452ae58.html",
"uri": "douban://partial.douban.com/rexxar_demo/_.*"
}
],
"deploy_time": "Sun, 09 Oct 2016 05:54:22 GMT"
}
对应到本地路由列表通过 Routes model 做映射,具体到每一条路由是通过 Route 做映射关系。
路由主要包括以下四个类:
Route:Json 解析使用;
Routes:Json 解析使用;
RouteManager:管理route文件;
RouteFetcher:根据route地址,请求route;
主要功能:
- 优先加载本地缓存,如果没有则加载 assets 预置的 Routes
- 获取线上的路由文件
- 找到能够解析 uri 的 Route
Rexxar Android 系列学习其他文章
Rexxar Android 系列学习(1) 项目结构
Rexxar Android 系列学习(2) 路由协议
Rexxar Android 系列学习(3) Native 和 web 交互
Rexxar Android 系列学习(4) 错误处理
Rexxar Android 系列学习(5) 过滤拦截
Rexxar Android 系列学习(6) 缓存机制