是否可以确保在全新安装代码推送的react-native应用程序后,用户从代码推送中获取最新部署的捆绑包?
我的目的是确保用户在第一次打开应用程序后始终会获得最新版本的应用程序。
编辑1
我已经知道code-push configurations,例如 InstallMode 和 checkFrequency 。我目前正在使用侵扰性较小的 installMode = ON_NEXT_RESTART 。
我想避免的场景如下:我首先在Play商店发布我的应用程序(让我们做一个Android示例),版本为1.0.0。之后,比方说,6个月以及我的应用程序在版本1.0.27上的许多新功能和错误修复。如果我只在代码推送上发布了更新(新版本),那么Play商店中提供的原始apk仍然包含捆绑版本1.0.0。这意味着安装后第一次打开应用程序的任何新用户都将获得6个月大的1.0.0版本,而不包含最新版本包含的任何新功能和修复。只有在重新启动应用程序后(假设它在第二天发生),用户才能从代码推送获得1.0.27版本(请记住我使用 installMode = ON_NEXT_RESTART )。
明显的解决方案是:
我对第一个选项(仅限第一个选项)感到满意。我想检查是否还有其他我不知道的选项。说实话,我不知道我想要的是否实际上可以用代码推送。
答案 0 :(得分:3)
根据评论中的讨论,您可以使用手动更新代码推送来实现您希望实现的目标。为此,您可以在AsyncStorage中设置一个变量,表示您至少打开了一次app,如果不存在,则控制&立即更新应用程序。下面是一个例子;
class MyApp extends Component {
componentDidMount() {
AsyncStorage.getItem('@AppHasOpened').then((appHasOpened) => {
if (!(appHasOpened && appHasOpened === 'yes')) {
AsyncStorage.setItem('@AppHasOpened', 'yes').then(() => {
codePush.sync({
installMode: codePush.InstallMode.IMMEDIATE,
});
});
}
});
}
}