思维导图
需求来源及目的
目前端内,涉及到跳转的业务非常多,大家都是依赖一份统一跳转文档,查找对应的跳转参数,然后去后台新建统一跳转,客户端内显示,这样的流程有几个痛点
对于技术人员来说:
———
- 文档的维护问题:只有一份wiki文档,人人都可以修改
- 文档通知问题:协议更改/删除/版本号变更之后,难以通知到其他人,需要借助微信通知
- 编码问题:没有一个统一的编码/解码方法;很多人都直接去在线编码/解码网站,可能会导致解析/生成结果不一致的问题
- 发送问题:每次想给自己发一条统一跳转消息时,都要填一堆额外的数据
对于需求方/QA来说:
———
- 操作繁琐,需要填很多参数,上传图片等等
-
痛点总结
结合以上痛点,为了简化操作流程,节约时间成本,提升用户体验,一个统一的跳转管理平台变得非常必要,新的平台功能精简后,将具备以下 三个功能
1,路由协议的增/删/改/查功能,方便开发者/需求方 在开发的时候能快速找到想跳转的位置以及需要传的参数的格式,以及开发人员可以随时对协议进行管理,不用再特地通知
2,常用统一跳转,这个是重点功能,通过下拉框列出所有可能的统一跳转场景,选择之后,自动展示所需的参数,参数填写完成,点击生成,就可以使用弹窗 显示 编码后的跳转链接 + 二维码,弹窗里有输入uid的功能,点击发送,可以直接发送小总管消息
3,路由协议的解析/加密,这个主要是提供给技术开发人员的功能,在开发过程中会遇到很多很多的跳转代码,由于进过base64编码,链接可读性非常差,因此提供一个解析功能,用于解析出 陌生的统一跳转代码的含义,以及跳转参数;同时修改参数,可以再次加密涉及到的部门
好处
1,开发人员可以随时对协议 进行管理,不用再特地通知
2,操作人员 生成/访问/解析 统一跳转链接的时候,能节省不少时间成本
3,结果的统一性与准确性,避免多种平台/工具所产生/解析的 结果不一致
4,QA/需求方 即使对技术不熟悉,也可以顺利地给自己发送统一跳转消息
平台搭建
原型图地址
https://modao.cc/app/qmGHakFgPOLg3gbt9mAfjxwlsSvG7jj?simulator_type=device&sticky
功能
路由参数管理
具备 增 / 删 / 改 / 查 等基本功能
- 采取 下拉框选择不同的业务场景,底部表格展示当前的action + 所需的参数list
- 表格展示 当前路由协议,含义,备注,以及安卓/IOS 版本号控制
- 强化责任意识,新增 创建人,创建时间,修改人,最后修改时间,路由修改的流程做到严格把控,有问题也可以即使寻求专人处理
常用统一跳转
新建常用跳转
力求简洁,操作简单,让QA,需求方自己也能独立操作
1,下拉框选择路由(有具体描述,方便区分)
2,根据不同的路由,展示不同的参数区域,填写 + 校验
3,点击生成,会弹出一个弹窗,展示生成的统一跳转链接(可复制)+ 二维码
4,弹窗内包含uid输入框,输入uid之后,就可以直接发送小总管消息到客户端
协议链接编码/解码
1,输入统一跳转代码,点击解析,还原原本的参数;修改部分参数,点击极矮
2,具有代码格式化的功能,点击格式化,弹出窗口,展示格式化后的代码
后台地址
目前数据已经全部都是使用接口调用的协议,由于只是用来在测试环境发送链接,因此,本平台不会有线上版本,只会在测试环境存在
http://testmanager.wb-intra.com/web/front-backstage/#/unclassified/universalJumpManage
技术实现相关
字段及含义
路由参数管理
核心数据结构
{routerName: 'main',routerId: 0,desc: 'main 首页相关',actionName: 'enter',actionDesc: 'enter 进入首页页面',routerCode: 'wanba://main/enter',extraDesc: '',IOSVersion: '',AndroidVersion: '',childParams: [{name: 'shareId',type: 'int',case: '',action: '',desc: '分享的id,如 12345',IOSVersion: '',AndroidVersion: '',childParamsId: 0,mapValue: ''}],// 2020-10-16 新增createTime: '',lastOperateTime: '',creator: '',lastOperator: ''}
优化后, 以router为元数据,routerId 为唯一key
常用统一跳转
列表 List 单元
{jumpCode: 'wanba://shopcenter/enter?_info=eyJhdXRvQ2xvc2UiOiIwIiwidHJhZGVUeXBlIjoiMCJ9', // 统一跳转代码jumpSceneName: '', // 跳转所属场景jumpUsage: '1', // 用途jumpDesc: '', // 备注jumpCreator: '', // 创建人jumpCreateTime: '', // 创建时间jumpSelectedParams: '', // 创建时选择的参数 json字符串jumpTotalParams: '' // 所选场景的完整router json字符串},
重新编辑 data
formEditJumpData: {jumpCode: '', // 统一跳转代码paramsBefore: '', // 之前的选项 json字符串paramsTotal: '' // 完整的router数据 json字符串}
需要的接口
接口比较简单,增删改查
由于之前有一个统一跳转平台,链接如下
http://testmanager.wb-intra.com/web/front-backstage/#/activityConfig/unifyJumpConfig
增删改查的接口,服务端需要改一些接口名和字段
路由参数管理
fe-unifyjump-manager/list
获取所有的统一跳转数据, 返回数据结构如下, action 是适用场景,params是相应的参数解释,这是主要维护的数据,在 统一跳转查询,创建/编辑跳转 的时候,都非常重要
{code: 0data: {list: [{routerName: 'main',routerId: 0,desc: 'main 首页相关',actionName: 'enter',actionDesc: 'enter 进入首页页面',routerCode: 'wanba://main/enter',extraDesc: '',IOSVersion: '',AndroidVersion: '',childParams: [{name: 'shareId',type: 'int',case: '',action: '',desc: '分享的id,如 12345',IOSVersion: '',AndroidVersion: '',childParamsId: 0,mapValue: ''}]},...]}max: nullmsg: nullsuccess: true}
fe-unifyjump-manager/add
新建统一跳转类型时,点击保存的接口, 之后我会再次调用 list 接口 刷新主数据, 参数传表单数据
{code: 0msg: nullsuccess: true}
fe-unifyjump-manager/delete
删除某条数据 参数传 routerId
{code: 0msg: nullsuccess: true}
fe-unifyjump-manager/update
编辑统一跳转类型时,点击保存的接口 ,参数传routerId + 新的表单数据
{"code": 0,"data": null,"msg": "编辑成功",}
fe-unifyjump-manager/search
支持模糊查询,针对路由名称和描述进行查询 参数传想搜索的key
{code: 0data: {list: [{routerName: 'main',routerId: 0,desc: 'main 首页相关',actionName: 'enter',actionDesc: 'enter 进入首页页面',routerCode: 'wanba://main/enter',extraDesc: '',IOSVersion: '',AndroidVersion: '',childParams: [{name: 'shareId',type: 'int',case: '',action: '',desc: '分享的id,如 12345',IOSVersion: '',AndroidVersion: '',childParamsId: 0,mapValue: ''}]},...]}max: nullmsg: nullsuccess: true}

