Rexxar Android 系列学习(2) 路由协议

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) 缓存机制

你可能感兴趣的:(Rexxar Android 系列学习(2) 路由协议)