方案一:(弹窗强更和静默更新)
1. 我采用的是设置checkFrequency: CodePush.CheckFrequency.MANUAL,只有在调用CodePush.sync才检查更新;
2. 然后通过CodePush.checkForUpdate返回是否强制热更新的参数isMandatory,如果isMandatory为true,我们就弹窗提示更新,并且将InstallMode设置为CodePush.InstallMode.IMMEDIATE,反之,我们就采用静默更新的方式,设置InstallMode 为CodePush.InstallMode.ON_NEXT_RESTART,让用户下一次启动时不知不觉使用新热更包。
具体可以参考: 关于react native code push的JS端配置攻略
方案二:(弹窗强制和不强制更新)
1. 通过CodePush.checkForUpdate检查是否有更新包,并通过isMandatory参数自行设计可取消和不可取消弹窗。
具体设计可以参考: CodePush 热更新之自定义更新弹框及下载进度
方案三:(静默更新,弹窗强制和不强制更新)
服务端新增一个接口专门处理是否弹窗更新的flag,这样可以更加合理的处理更新,当修改了文案及无关紧要的问题时,我们后台设置不弹窗flag,前端就可以处理为静默更新;当修改了bug但不更新也影响不大时,我们可以弹窗不强制更新;当修复重大bug或者新增重要需求时采用弹窗强制更新。