页面跳转导航中间件——Router

上一篇介绍的SCC中,主要用来做组件化管理功能。在业务开发中,我们经常涉及到外链或内联打开App某个业务页面的情况,因此一个页面跳转导航中间件就显得有必要。SCC如果是整个组件化过程的基石的话,那么Router就是业务展开的基础,它统一管理了页面之间的跳转,无需确定具体Activity的名称。

开发中,可以使用URL的形式进行页面跳转,如通过扫描二维码就希望能够打开APP的某个页面,如通过点击短链就能打开Native的Activity页面或者Hybrid页面。如此种种,我们通过一个管理页面跳转中间件来做到统一管理。首先,需要有个链接处理器,用来处理如短链这种,需要先做网络请求返回实际的网络。接着经过URL请求过滤器,如需要打开的URL进行日志上报、Scheme填充等处理、接着经过目标过滤进行如深度链接处理,如我们在AndroidMenifest埋入的scheme一般设置一组,那么如果有多个不同URL请求打开同一个activity,那么在目标过滤器做下处理即可。经过目标过滤器之后就可以打开结果页,结果页分有对应的Activity和错误页。

页面跳转导航中间件——Router_第1张图片

从上图原理知道,我们可以定义一个IProcessor接口,一个IInterceptor接口,IReqInterceptor和ITargetInterceptor集成IInterceptor,一个NavManager管理类。

你可能感兴趣的:(页面跳转导航中间件——Router)