关于3.0微信纯资源热更新

都2023年啦,我以为大家都知道微信是可以热更资源的,直到看到论坛里面还有人在问相关问题。这里我给大家简单分享下我的实现方式。
我的方法目前只测试过zip形式的资源包。

  1. 开启资源hash输出,否则可能造成缓存不能更新资源
  2. 每次打包完成后,通过脚本获取包hash值,并存储在文件中,如下:

  1. 在项目开始,加载上面生成的hash清单文件,不要开启缓存,否则造成不能更新导最新的清单文件:

  1. 重写bundle加载函数,将zip路径重定向到新资源,并通过老hash值加载本地包js文件(这一步非常重要,否则报错):


红框中代码在3.8中与引擎源码的路径不一致,不知道是否是因为使用了代码作为包的问题:
3.8

其中包中的js应该是注册一个虚拟模块,只要名字一样就行了,我对比过不同hash值文件,没区别:

以上!

2赞

你说的资源包括js脚本?

肯定不包括哈

1赞

咻,不包括的话我为什么不动态加载,在一开始全部加载多慢啊,

为啥要在一开始全部加载啊

我见很多人都是这么做的,但是我一般很少

没懂这和热更新啥关系啊

既然都H5了,我就直接强制重新进入游戏,不做热更了,多省心

哥哥,小游戏平台哈

。。。热更新的东西不就是应该包括脚本吗?如果仅仅是图片或者一些文字的资源,那热更新与否不重要,因为资源可以做到查询一遍服务器,如果是没更新资源,那就不热更,如果是服务端都更新了资源,那就热更,说白了,热更==同步服务器端的资源,但是这些资源得包括脚本才叫热更,不然只能算是更新一些资源(重新下载一些图片之类的东西,不包括脚本),哪里来的热更之说

说的很对。但是用了cocos的资源管理器你就晓得为啥要这样做了。而且微信就不要想脚本了。除非你再搞一个js虚拟机。。。