Categories
程式開發

有赞移动应用如何给页面安上“任意门”


“任意门”:一行配置实现页面跳转重定向。

背景 & 痛点 & 价值

动态路由组件,处理的是 App 中最最常见的一种行为的问题,那就是:跳转。

随着 App 技术栈的扩展,从原本最最简单的原生到原生的跳转,扩展到目前同一个 App 中包含原生页面、H5 页面、Weex 页面、Flutter 页面之间的跳转。

有赞移动应用如何给页面安上“任意门” 1

随之而来的问题就是:随着 App 的版本迭代,很多原本原生实现的页面,需要通过新的 H5 或者 Weex 页面进行升级/降级。而这些原本都是硬编码的跳转逻辑,可能需要随着版本不停改动。总结下来,现有的,各个技术栈隔离的页面跳转逻辑面临的直接问题有:

  • 跳转逻辑跟着版本走,无法统一进行改动
  • 跨技术栈跳转的实现成本比较高,必须在桥接模块中进行特殊适配
  • 在一些 H5 需要使用专门 WebView 页面打开的场景下,很难去适配,也必须通过各个 Web 跳转的拦截做特殊处理

为了解决以上硬编码以及灵活性差的问题,我们决定梳理现有的各技术栈跳转逻辑,将这些跳转整合,能够满足动态性、可配置的需求。

得益于项目中原有的路由跳转组件,各种页面之间的页面都可以通过 URL 的方式进行路由,于是我们基于 URL 跳转,开发了一套动态路由组件,它完成的工作有 :

  • 承担 App 内所有跳转逻辑
  • 通过配置中心组件,支持获取/配置路由替换规则
  • 匹配所有的路由跳转规则,命中规则的,替换成新的目标路由地址
  • 将实际跳转目标地址传递给路由组件执行实际的跳转行为

原文链接:【https://www.infoq.cn/article/LVQUWPfMN2XM86r5EEYP】。未经作者许可,禁止转载。