react native一套代码开发多个App
2018-05-28 本文已影响64人
Sephiroth_Ma
如题,就是一套代码开发多个APP程序,(比如我们公司主打的APP,会有一些客户想独立运营,我们会给他们单独运营的系统以及APP,我们称之为O单用户,这些APP与我们主打的程序无非就是接口域名,主题颜色,一些界面略有不同,这个时候总不能把代码拷贝出来给他们开发,因为当有新的需求时,还得把新增的代码拷贝到拷贝出来的程序,有点啰嗦了,就是希望有需要的朋友能更明白些)
关于iOS程序一个工程多个targets 可参照之前大神的文章如何在iOS项目中创建多个target?iOS开发多个Target的使用
接下来说下react native iOS端怎么一套代码开发多个APP程序?
网上大部分资料是这么解决的,比如:同app下多个react-native jsBundle的解决方案
大致就是根据moduleName这个字段,进行不同的js加载,但是会有一个问题,内存开销过大
经过了多方法测试,我有一个方法给大家分享下,内存方面自测没有什么明显过大的开销,“独立入口,独立加载index”
以下是主要代码
![](https://img.haomeiwen.com/i3104940/964c13666908e611.png)
上图的jsBundleURLForBundleRoot字段值是根据不同的APP的target值对入口js文件进行独立的加载,以及对codepush打包进行不同的处理,都是相互独立的。
react native 中
![](https://img.haomeiwen.com/i3104940/e17aa31c4593be22.png)
![](https://img.haomeiwen.com/i3104940/5ad7ad3a5272f027.png)
![](https://img.haomeiwen.com/i3104940/3b8dae01a93648c2.png)
我们可以在index_xx.ios.js 中定义一个全局变量 为了其他界面处理不同APP
![](https://img.haomeiwen.com/i3104940/913c0ccc62e2b2ee.png)
以上思路希望能帮助各位有需要的朋友,如果有什么不足,请指出