有没有哪位大神可以给一个简单易懂的热更新js脚本。
我用了热更新的范例教程的HotUpdate.js,提示我未能加载本地清单,求大神解释一下
1.获取服务器版本号
2.与本地版本号对比
3.1.本地>=远程,进游戏
3.2.本地<=远程,下载版本号对应的更新文件
4.解压更新包
5.1解压失败,进游戏
5.2解压成功,复制到目标目录,重启cc.game.restart()
请教一下,这些流程是manifest文件自动完成的吗?可以不用创建一些检查更新.立即更新等按钮来实现吗?
常用md5校验热更
这边的md5列表存放每个代码或者资源文件的md5值的列表,包含三大属性,以“|”符号分隔
文件Key值|md5值|文件大小
示例:
sg/res/map/shuiyuegong/x0_0.jpg|d5137b9d0037d7a721b84cb9ae8c9594|116662
(文件Key值一般对应它在服务器中的下载路径)
初始包,包体包含所有文件的md5列表
热更服务器保存最新的代码的md5列表
初始包更新:
1.拉取热更服务器保存的最新md5列表
2.与本地比较
3.下载本地与服务器md5值不同的文件
4.更新本地md5值
基本的原理是这样
好处在于不用关心各个旧版本分别到最新版本去生成不同的ZIP包
只要保证热更服务器是最新的代码(或者说最新改动过的代码)
无论对于何种热更版本的包,其核心动作都是如上述4点一样
后面的工具会涉及:
1.md5生成工具
2.热更资源包生成工具(对比当前代码的Md5列表,与线上包的Md5列表,生成热更包)
3.热更管理器(多渠道管理,多版本管理)
感谢!感谢
我想再问一下,本地包要写什么代码来响应热更新?