美文网首页
路由跳转优化

路由跳转优化

作者: couriravant | 来源:发表于2020-03-22 23:22 被阅读0次

类图关系变化(跳转到购物车页面为例):

优化前:

image.png

优化后:

image.png

BaseRedirectActivity 中会对uri携带的公共参数(need_login、redirect)进行处理,这些处理属于所有协议跳转都必须做的,而且与dispatchFrom的跳转分发在时间上先后顺序不是固定的,因此可以将二者顺序调换。

即,优化前:在DeeplinkActivity中先通过dispatchFrom跳转到二级路由(如:RedirectShoppingCartActivity),再在二级路由的基类BaseRedirectActivity对公共参数(need_login、redirect)进行处理,在二级路由的onCreate中对私有参数进行处理(如uri中携带的poi、sku、type等业务参数),再将处理好的参数传入目标Activity(如:ShoppingCartActivity)。

优化后:在DeeplinkActivity中先通过基类BaseRedirectActivity对公共参数need_login、redirect)进行处理,再在redirectWithUri中进行dispatchFrom,同时在dispatchFrom中先对uri中的私有参数进行处理,之后再跳转到Activity(如:ShoppingCartActivity)。

进一步优化(代码尚未提交,需要更多时间自测):

优化原因: 1. 上述优化在dispatchFrom中对uri中的私有参数进行了处理,而在原开源框架中,是将uri私有参数在了bundle中,通过Intent传入了目标Activity(在目标Activity中对私有参数进行处理),这样做到了 更好的解耦

2.原框架通过对bundle传入特殊参数的方式,对跳转是否成功进行了监听,可以更好的兼容未知的需求

优化方案:dispatchFrom中将私有参数放入bundle并传入目标Activity,在目标Activity中获取bundle进行参数处理。(tips: 有些目标Activity不能直接通过startActivity进行跳转(如付款码界面),仍然采用之前的优化方案)。

相关文章

  • 路由跳转优化

    类图关系变化(跳转到购物车页面为例): 优化前: 优化后: BaseRedirectActivity 中会对uri...

  • 路由跳转(非命名路由)

    单纯跳转: 路由传值跳转: 路由传值返回跳转:

  • Vue 动态设置路由Meta title 名称

    路由配置 路由跳转 或路由配置 路由跳转 都可以,看着用。随堂笔记防遗忘!

  • flutter笔记一

    路由跳转 创建新路由

  • 路由跳转的总结

    路由跳转 方式1返回上一级或指定的路由 方式2使用路由跳转

  • angualr(二) 路由之angualr-router

    创建项目 路由的基本使用 路由对象图示 路由基本配置 路由通配符配置 HTML里面跳转链接 在js里面跳转路由 路...

  • react路由基础配置

    1、根据路径加载对应页面内容2、路由跳转3、路由懒加载4、嵌套路由(子路由)5、路由管理6、路由跳转权限校验 1、...

  • nuxt基础

    路由跳转 动态路由 对应会自动生成如下路由 路由参数校验 返回布尔值,false则跳转到404页面 嵌套路由

  • 路由跳转(可能的面试题)

    路由如何取参数? 如何跳转路由?

  • 路由嵌套

    子路由的path不能带 /, 否则不跳转, path: 'chapter' 跳转的路由地址要把父路由带上 "/co...

网友评论

      本文标题:路由跳转优化

      本文链接:https://www.haomeiwen.com/subject/kswbyhtx.html