基于KVRouter的页面动态定向方案

2018-04-04  本文已影响0人  佳木秀林

如果不是从KVRouter传送过来的童鞋请戳此跳转

1 使用场景

1.1 案件重现



花开两朵,各表一枝。


2 方案介绍

该方案使用一个json文件来实现跳转路径解析的数据更新,每次App启动都会去拉取服务器一个版本号,如果与本地版本号不一致,那么拉取服务器的最新文件来更新本地的跳转路径解析数据。

2.1 实现原理

通过设计一个中间人来处理来自于扫一扫或者其他需要用到该方案的URL请求,然后通过与本地的跳转路径解析数据进行匹配,获取到本地页面的跳转URL,获取到,那么跳转,获取不到,那么跳转该原始URL。(之前看过天猫架构师的一篇文章,天猫也是有这种动态定向的方案的,只不过他们是通过URL降级处理来解决当前版本无法识别的界面,我的方案是直接识别原始URL,通过原始URL与本地页面URL进行匹配,匹配不到直接跳转网页,不需要做降级处理)
看流程图最清楚。


页面动态定向方案.png

由于使用了KVRouter处理原生页面的跳转,所以该中间人并不需要做过多的事情,仅需要将原始URL转成App能识别的原生页面URL以及解析好参数进行传递即可。

2.2 方案要点

先来看一下我是如何保存路径匹配的数据的。

 {
        "key" : "www.baidu.com/*/lesson",  //原始URL
        "type" : 1,  //该数据的处理类型,有的是跳页面,有的是直接跳回首页
        "localpath" : "course/lesson/detail",  //对应的原生页面URL,可以通过KVRouter进行跳转
        "param" : {  //参数列表
            "id" : "courseid"
        },
        "needlogin" : 0  //是否需要登录
    }



2.3 写在最后

其实这篇文章的要点全在那张流程图上,只要看懂了,其他都可以根据你项目的具体需求进行调整。
另外,由于使用了KVRouter,所以在中间人进行页面跳转的时候不需要做过多处理,整个项目的架构可以保持一致性。

上一篇 下一篇

猜你喜欢

热点阅读