自己重新整理了一下CocosCreator的热更,经过反复折腾,总算是一个可以较轻松使用的版本了。
jees.hotUpdate.js
- 将官方的热更状态码进行了分类和整理,用自定义状态来代替。
- 通过绑定事件,进行状态改变时的通知。
// _status为自定义状态, _evt为原事件对象 jees.hotUpdate.bind( ( _status, _evt )=>{ this._callback( _status, _evt ); } );
- 回调事件需要自己处理相应的状态
switch( _status ){ case jees.hotUpdate.STATUS_UPDATING: log( "更新进度..." ); // log( "获取文件进度: " + _evt.getPercent() ); // log( "字节进度: " + _evt.getPercentByFile() ); // log( "已完成/总文件数: " + _evt.getDownloadedFiles() + ' / ' + _evt.getTotalFiles() ); // log( "已完成/总大小: " + _evt.getDownloadedBytes() + ' / ' + _evt.getTotalBytes() ); break; case jees.hotUpdate.STATUS_ISNEW: log( "已经是最新版本." ); break; case jees.hotUpdate.STATUS_FINISH: log( "重启游戏" ); cc.audioEngine.stopAll(); cc.game.restart(); break; case jees.hotUpdate.STATUS_FAILED: log( "更新失败,发生错误." ); break; }
发布热更版本时的注意事项
- 使用官方插件中的热更新工具进行发布版本
- 可以使用本地文件校验或者远程文件校验,个人推荐使用远程校验文件
// 这里可以填写本地相对路径作为初始的版本校验文件 jees.hotUpdate.check( "http://localhost/example/project.manifest" );
- 使用热更工具注意填写的版本号,以及本地版本和远程版本的区别。
本地校验注意事项
- 构建项目后,热更新工具先生成远程版本,替换远程文件。
- 修改版本号,重新生成旧版本文件,替换本地校验文件。
- 构建项目,运行模拟器或者真机,此时会进入热更过程。
项目演示程序及jees.hotUpdate说明
- jees项目文件:https://github.com/aiyoyoyo/CocosCreator-Jees
- 演示程序在example中,cocoscreator版本为2.3.3
- 热更逻辑文件:https://github.com/aiyoyoyo/CocosCreator-Jees/blob/master/src/cc/jees-hotUpdate.js
- 该文件中依赖了3个其他类,项目源文件夹src/cc下面
jees.platform // 设备信息类 jees.data // 数据处理类 jees.game // 游戏逻辑辅助类 jees.http // 网络请求类 jees.file // 文件处理类
其他
部分类不是完善,后续会逐步更新相关内容,喜欢的话请加群,关注github上的内容。
Github地址:https://github.com/aiyoyoyo
QQ群:8802330