前段时间,app里某个功能使用RN开发,完成了上线,下面我们来说说我们是怎么处理bundle文件的。
先来说一个概念:FaceBook宣传ReactNative时,热更新是不得不提的功能,可是官网文档和网上也没有提供比较完善的热更新的思路。
我们先来看看ReactNative是怎么处理bundle文件的。可以有如下两种方式:
1、app发版时,将bundle文件内置到app中,同时将图片和js文件内置到app中(Android和iOS处理的不同,后面文章再说)
2、app在合适的时机,加载服务端最新的bundle文件
那,我们是怎么做的呢?我们通过下面的一个流程图来看:
其实,现在这个方案不是最优的方案,还有许多地方可以优化
1、请求配置信息时,可以添加个优先级,优先级高的立即请求,优先级低的可以异步请求、等用户有WIFI的时候在请求,保证用户下次进入app的时候功能好用就行。
2、增量更新。一个完整的ReactNative-APP程序通常包含以下几个部分:RN中的js代码部分、依赖的第三方库、业务代码、图片资源等。
增量更新是个比较复杂话的话题,这就又涉及到一个RN多个app的情况,多个app怎么升级,版本之间的差值怎么计算,后面我们文章再详细介绍我们的方案。
3、ReactNative 支持的版本问题,譬如我们线上使用的是0.19,那我们什么时候更新成0.30 ?RN比较操蛋的是,版本升级不向前兼容。
问题还是挺多的,后面有什么好的方案再继续交流。
如果你也有幸读到这篇文章,也可以说说你的想法。