[关闭]
@my943813636 2020-03-06T06:09:19.000000Z 字数 1175 阅读 757

APP 端数据和h5交互规则

未分类

数据源

  1. 本地缓存数据源
  2. 网络数据源

数据源会进行合并(成功的数据实体,失败时的错误码) 使用观察者模式对外暴露出的只有单一数据来源。

缓存控制策略
1. 缓存数据源不为空先使用缓存数据源并通知观察者,网络数据源获取成功后更新缓存数据然后通知观察者
2. 缓存数据不为空仅使用缓存数据源,不通过网络获取
3. 仅使用网络数据源

缓存数据的清理

  1. 用户退登
    • 清理购物车
    • 清理收货地址
    • 清理token
    • 清理收藏
    • 清理浏览历史
  2. 用户手动清除缓存
    • 清理购物车
    • 清理收货地址
    • 清理收藏
    • 清理浏览历史
    • 清理图片缓存

数据源和缓存策略

1. 分类数据

只在进入app,或者分类数据获取失败用户手动重试的时候触发
- 全局一份(很多界面需要使用到)
- 缓存:策略是先本地后网络数据持久化到本地但不更新内存中的分类
- 因为需要遍历获取说有分类所以耗时较长
- 因为首页数据和分类数据关联紧密,为了提高首页数据加载速度,会优先使用缓存的分类数据,而不等待网络分类数据返回
- 有缓存的情况下会优先使用缓存数据,且不会使用网络数据(网络数据会更新持久化缓存,在下次开启app时生效)

2. 首页数据

进入app,或者用户下拉刷新触发更新
- 优先使用缓存数据渲染界面
- 如果本地缓存存在,网络数据即使获取失败也不会显示错误
- 网络数据获取成功后会缓存然后局部更新ui

3. 购物车全部数据

打开App,退登,登录 均会触发
涉及 购物车列表, 结算信息 , 优惠券信息, 促销信息, 推荐列表
退登、登录 会清空购物车缓存数据

数据渲染策略

web 交互

1. 广告位url的跳转

通过 url 处理,解析url的path参数
eg: https://m.sisilily.com/checkout/cart.html?test=123

path 会分类3段

urlParams

匹配如果是原生覆盖的页面,跳转到原生页面,urlParams参数看情况选择传递

2. h5 ui调整

此处输入图片的描述

需要h5配合处理隐藏一些不需要的元素 使得页面沉浸感更好
app端传入 ua 会带上 mobile_app. h5 识别并隐藏部分元素.具体隐藏哪些后期待定

3. h5同步登陆状态

待补充

4. h5页面与原生交互

  1. 拦截url 跳转, 和 banner 跳转规则一致, 符合规则的页面跳转原生页面,并阻止网页端的跳转
  2. 特殊功能无法通过url跳转拦截实现的 或者 需要调用原生功能的 需要写 javascript interface 对象注入网页,网页端调用注入对象的接口回调到原生,目前暂无应用场景
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注