组件化之页面跳转设计

当项目做了组件化之后,每个module都是可以独立作为application,那么怎么跳转到别的module页面呢?是否需要关心别人的页面叫什么呢?是否需要因为别人的页面改动而影响呢?

答案是NO。

那么我接下来要说的方案是deeplink,也就是Android提供的scheme跳转。

http://example.com/deepLink/{id}/{name}比如这种形式根据两边定好的协议,能直接跳转、获取参数,而不需要关心对方的页面,就算页面改了类名、包名,只要scheme配置没改,那么都不需要担心。
做到了解耦的特性。解耦也是组件化的最关键的一步。

自己维护一个navigator

全局维护一个navigator,每次有需要跳转的页面,就register进去。

使用注解方式

使用annotation,在每个界面上方注册deeplink的参数和规范。

使用apt,生成每个module(根据module包名)自己的分发deeplink的类。

airbnb的deeplinkDispatch就做的很好 deeplinkDispatch

。。突然没心情写源码解析了。以后有空再补上。

Abner_泥阿布 wechat
欢迎您扫一扫上面的微信公众号,订阅我们的公众号!
或者欢迎加入QQ群:568863373。


如果你觉得这篇文章对你有帮助,请点击下面的分享链接,你还可以选择扫描二维码进行打赏!

我的Github

我的新浪微博