版本检查

[toc]

版本检查

一、App的版本检查

1、流程图

版本检查

图片来源于 版本检查.graffle

二、接口设计

公共参数详见:《基础规范-请求规范》 中的request公共入参保持一致

序号 标识 示例 描述 必传 用途
1 isManualCheck true/false 是否是手动检查更新 避免关闭后无法弹出
2 callOwner app、h5 调用者 不同调用者版本提示语可能不一致

三、JS方法提供

背景:一些新活动需要触发弹出新版本

序号 js接口 描述 场景
1 h5CallBridgeAction_checkVersion 检查更新
2 h5CallBridgeAction_updateVersion 马上更新 更新弹窗h5游戏自定义不同的风格

二、版本修改

1、iOS版本设置

2、Android版本修改

进入bulid.gradle文件,修改如下:

1
2
3
flutterVersionName  ="1."+new Date().format("MM.dd", TimeZone.getTimeZone("GMT+8:00"))

flutterVersionCode = new Date().format("MMddHHmm", TimeZone.getTimeZone("GMT+8:00")) // 需要versionCode每次都要比上次大,与版本无关

3、Jenkins中的版本设置

进入Jenkins指定iOS项目的配置,修改

1
2
3
4
VERSION=$(date "+%y.%m.%d") # 19.02.21 小y是19,大Y是2019
BUILD=$(date "+%y%m%d%H%M") # 1902211506
echo "------VERSION:${VERSION}"
echo "------BUILD:${BUILD}"

二、网页的版本检查/版本更新

https://www.google.com 为例,即访问google的时候,想要访问到最新的版本内容。

其他参考文章:

一、直接版本地址方案

有版本更新时候,接口直接返回最终的访问地址。形如:https://www.google.com/v10201000

缺点:

  • 返回给app的地址得一直变化。

  • app中历史记录得做映射,不能直接保存网页地址。否则会出现点击了一个历史记录,发现之前的地址无法访问的问题。(为此,app就得通过类似id的方式,每次去向接口取最新的值)

    退一步将每次获取改为切换前后台的时候,才去获取,也会出现有地址id,却出现通过id取接口失败的一些异常情况出现。

二、重定向方案

版本举例如下:

时间 发布的版本号 浏览器/客户端访问的【输入地址】 浏览器/客户端【访问的实际地址】
10.20 10:00 v10201000 https://www.google.com https://www.google.com/v10201000
10.24 10:00 v10241000 同上 https://www.google.com/v10241000
11.01 10:00 V11011000 同上 https://www.google.com/v10311000
11.01 12:00 V11011200 同上 https://www.google.com/v10311200

方案过程如下:

1、浏览器/客户端访问 https://www.google.com

2、https://www.google.com 所对应的网页 https://www.google.com/index.html 进行 check_version 接口请求

1
2
3
4
5
网页:https://www.google.com/index.html
请求方法:check_version
请求结果:{
"url": "https://www.google.com/v10241000/index.html"
}

3、https://www.google.com/index.html 根据所得地址重定向

4、最终即看到的是用户在浏览器/客户端访问 https://www.google.com ,但实际上会访问最新的版本 https://www.google.com/v10241000/index.html

优点:

  • 浏览器/客户端访问的【输入地址】版本变化时,也不用变化。

三、常见问题(FAQ)

问题1:访问google没看到变化的内容

1、无重定向时,即访问的地址是 https://www.google.com/v10201000

可能原因为:有缓存,需要在url后加参数 来刷缓存,形如: https://www.google.com/v10201000?refresh=123

2、有重定向时,即访问的地址一直是 https://www.google.com

可能原因为:https://www.google.com/index.html 没做重定向到最新的版本地址

End