跳到主要内容

代码热更新

官方热更新服务

  • 点我进入官方热更新
    tip
    • 官方热更新服务支持加密链接可以放心使用
    • 官方热更新安卓和iOS 脱机版本是通用的,使用方式也是一样
    • 官方热更新服务对接阿里云的oss服务,更加方便

什么是热更新

  • 热更新一般用于不用安装程序即可将关键的代码进行更新
  • EC的热更新主要用于更新打包后的自动化测试脚本
  • 注意: 一定要保持update.json文件和服务端接口返回的版本好一直,否则可能导致异常情况

EC如何热更新

  • 打开工程下面的update.json,内容如下:
  • !!![提醒]!!!热更的是编译的iec文件
  • !!![提醒]!!!这两句是给沙雕看的,不是让你写进json文件的,json不支持任何注释
{
"update_url": "http://baidu.com/update",
"version": "100"
}

:::

EC 加载新包

客户端请求

  • 以上配置好后,打包运行,程序会自动使用GET方式请求 update_url对应的地址并且会带上参数; 例如 :http://baidu.com/update?version=100 可以自行在服务端做版本比较,客户端自己也做了版本大小比较

服务端返回

  • !!![沙雕]!!!热更的是编译的iec文件
  • !!![提醒]!!!如无需更新,服务器直接返回空字符串即可,不要返回json
  • 服务端返回格式如下:
  • 普通更新
  {
"download_url": "http://baidu.com/aaa.iec",
"version": "101",
"dialog":true,
"msg": "优化部分问题",
"force": false
}
  • 严格方法,校验md5,防止更新失败
  {
"download_url": "http://baidu.com/aaa.iec",
"version": "101",
"dialog":true,
"msg": "优化部分问题",
"force": false,
"md5":"服务器自行校验的iec文件的md5值"
}
  • download_url: 代表新包的下载地址
  • version:代表新包的版本号
  • md5: iec文件的MD5,如果有这个值会强制校验文件的准确性,保证文件一定是完整的
  • 返回这样的格式的JSON后,EC会下载最新的IEC包并加载使用。
  • dialog: 代表是否用对话框的形式展示,true 代表是对话框,false代表不是
  • msg: 对话框中要显示的消息
  • force : 代码对话框模式下是否强制更新,true 代表强制更新,无法取消,false 代表不是强制更新

UI启动更新

  • 如果上述配置无误,打开界面会自动更新

脚本内热更新

  • 脚本执行期间可以做热更新操作,自行编写代码检测