一、概述
app热更新,安卓可以通过插件实现,但是ios却无能为力。如果通过发版更新,安卓的速度可能好一点,但由于Apple严格的审核标准和低效率,iOS应用的发版速度极慢,所以应用热更新的能力显得尤其重要。
二、 原理
热更新作为React Native的优势之一,其根本原理就是把本地jsbundle替换成远程的jsbundle,并且重新解析渲染。
三、流程图
四、上面流程图简单的描述的热更新的操作流程,还有几点需要注意:
1、由于我们app整个页面只有一个原生页面,区别于京东淘宝那种首页原生的混合模式,出于展示速度考虑,每次更新完成要下次启动app才会生效
2、热更新只是更新jsbundle,同时我们也会进行客户端的版本更新,需要客户端发版,安卓走应用市场,ios走app store
3、为了解决客户端碎片化问题,客户端请求服务器是否有更新时,需要上传客户端版本号和当前jsbundle版本号(ios和安卓客户端版本号每次发版需要保持一致),服务端会判断当前用户是否需要更新,如果需要热更新则下发最新的jsbundle地址供客户端下载