以下内容仅针对安卓处理做RN开發知道RN项目启动实际上是打包好的js文件,一般打包到android项目assets目录下,启动加载这里的bundle.js文件当然RN也可以加载手机内存中的bundle.js
本人项目没有用code-push热更噺,而是自己实现的根据是否有新版本的bundle.js文件 下载重新加载本地bundle.js
之前下载新的bundle后都需要重新启动app才能实现重新加载本地bundle.js 体验比较差
目的:不用杀死进程重启应用,可以重新加载JS代码重启页面。
因为Applicaiton是单例启动app后再不关闭的情况下只实例一次所以对应的getJSBundleFile这个方法也就只執行了一遍
所以如果更新了新的bundle文件,想要重新加载就必须重新让RN调用getJSBundleFile()方法
根据以上思路和推断在自己的MainActivity启动类中做一下逻辑,当新的bundle丅载到本地后重新加载bundle
//获取本地的js代码 这里就不给出代码了 如果本地没有就返回assets目录的
在需要重新加载的地方 调用loadBundle()方法便可。希望对自主实现更新加载bundle的朋友有所帮助