JKRouter路由跳转解决了哪些问题

  2017年元旦开始构思设计路由跳转机制,中间经历了很多次的迭代,每一次迭代,都绞尽脑汁,力争做到完美,更完美。每一次迭代完了,都觉得很完美了,过了一段时间后,又发现仍然还有一些不足。然后继续构思,继续迭代。直到最近,经过不断的迭代,在自己公司中的项目中也大范围使用了。版本也基本稳定了,关于JKRouter的优点,之前在迭代的过程中也写了相关的博客,但是还不够完善。这里我重新梳理一下。

1,解除代码间的耦合

进行组件化开发中很重要的一个步骤就是进行组件的解耦。JKRouter主要是结合rumtime获取proertyList,然后通过KVC进行赋值操作。对于url跳转时也可以对viewController实现自定义的赋值方法。通过这些技术支持能够实现传入viewController的className就实现赋值操作,从而实现解耦。

2,支持url跳转

这个应该说是一个非常非常重要的功能,这里我重点说一下哦。

1)推送时打开推送消息可以打开app然后跳转到指定的页面

2)app运营活动时,弹框或者banner跳转到指定的页面

3)在网页上时唤醒app时跳转到指定的页面

4)在通过url跳转时支持安全性校验

5)支持h5页面和native页面的无缝跳转

3,支持下发路由表的功能

  通过下发路由表,可以临时改变app的跳转,可以将app提前发布的功能通过更改路由表开放出来,如果app某些模块有bug或者要关闭,我们也可以通过下发路由表来实现相关功能的关闭。

4,支持跳转时的权限校验,以及跳转时的异常处理

  支持在跳转时判断该条件是否符合该页面的打开条件,以及能够进行没有权限打开的异常处理。比如某些页面的打开需要用户登录app,某些页面不需要,JKRouter提供了框架上的支持能够简单省事的解决这些问题。

5,支持自定义转场动画

  JKRouter框架支持用户设置自定义的转场动画,并通过JKRouter进行跳转操作。

6,支持多样的pop操作

  JKRouter不仅能够实现正常的pop操作,还能按照step(回退的viewController的数量)进行回退操作。不仅仅打开viewController时能够对相关的viewController进行赋值操作,而且能够在pop回到某个viewController时对相关的viewController进行操作。

7,支持多种open操作

  JKRouter支持多种打开方式,打开ViewController的时候可以新创建,可以替换当前的viewController,可以执行refresh操作。可是通过JKRouter实现tab切换,支持不同形式的rootViewController配置(有tabBar和没有tabBar),JKRouter框架做到了tab对应的viewControlle和非tabController无差别处理。另外不仅仅支持viewController的打开,而且也预留了方法,可以让用户通过url跳转时可以打开alert弹框,actionsheet。等其他的操作。

8,viewController支持自定义赋值操作。

JKRouter支持用户通过YYModel,或者别的第三方工具库在跳转时对viewController进行赋值操作。

QQ交流群:扫码入群
JKRouter路由跳转解决了哪些问题

更多优质文章,可以微信扫码关注:
JKRouter路由跳转解决了哪些问题