CodePush是一项云服务,可让Cordova和React Native开发人员将移动应用程序更新直接部署到其用户的设备上。 最终用户可以更新应用程序,而无需通过应用程序商店或手动等进行更新。
这篇文章试图解释您的react native项目中codepush的简单实现,这对于大多数常见用法都以为官方文档解释了各种自定义。
首先,您需要通过以下命令在终端中安装基于NodeJs的CLI:
npm install -g代码-push-cli
其次,您需要创建一个CodePush帐户。 为此,请首先在终端中键入以下命令:
代码推送寄存器
然后,将要求您提供令牌,同时,您将被引导到自动注册的网页。 如果一切顺利,您将在注册后获得令牌。 复制令牌并将其粘贴到终端中,然后按Enter。
做得好! 您已注册! 现在是时候通过以下命令制作应用了。 请记住,您应该为正在使用的每个平台制作一个单独的应用程序,如下所示:
代码推送应用程序添加MyApp_IOS ios react-native
代码推送应用程序添加MyApp_Android android react-native
每次您运行这些命令时,您都会得到两种代码。 每个平台的分期和生产。 这些代码将在以下步骤中使用。 您可以稍后通过以下命令再次获取这些代码:
代码推送部署ls MyApp_IOS -k
现在,当您位于项目根目录中时,可以通过以下命令轻松将CodePush添加到项目中。
react-native链接react-native-code-push
系统将提示您输入要用于每个平台的部署密钥。 只需提供最后一步的密钥即可。
现在,您需要包装主应用程序组件,以让CodePush管理您的更改。 最简单的形式是以下形式。 它将尝试立即自动更新该应用程序(如果有新应用程序)。
从“ react-native-code-push”导入codePush;
MyApp类扩展了Component {
componentDidMount(){
codePush.sync();
}
//逻辑,渲染…
MyApp = codePush(MyApp);
如果您可以通过这种方式更新应用程序,则可以跳过此部分并跳到下一步。 但是由于可能不是您要寻找的用户体验,因此另一种方法是使用户知道该更新。 您还可以执行许多其他策略(例如:使更新成为可选的),但是我们要寻找的是在通知最终用户之后,使用自定义消息和按钮标题进行的强制更新。 我们通过下面的一段代码来做到这一点:
让codePushOptions = {checkFrequency:codePush.CheckFrequency.MANUAL};
codePush.sync({ updateDialog:{ essentialUpdateMessage:“有一个新的更新”, 标题:“请按下按钮开始更新”, 必须的ContinueButtonLabel:“更新” }, installMode:codePush.InstallMode.IMMEDIATE });
MyApp = codePush(codePushOptions)(MyApp);
现在,您应该运行应用程序的发布版本(ios和android教程),然后进行一些更改(例如:更改文本标签)。 然后通过以下命令将您的应用释放到CodePush :( -m表示该更新是强制性的,无法取消)
代码推送发布-反应MyApp_Android android -m
如果您在应用程序中使用过“登台模式密钥”,则下次打开应用程序时,应应用更新。 但是,如果您提供了“生产密钥”,则应通过以下命令将发布状态从暂存状态更改为生产状态:
代码推送促进MyApp_Android临时生产
本教程基于我们在Sanjagh项目中的要求(本地服务市场包括房屋清洁等各种服务)。 您可以根据需要应用各种自定义。 例如,指定下载更新后应用更新的行为。 可以立即使用新更新重新加载它,或者在用户下次打开应用程序时请求应用更新。 为了更好地进行部署管理,您可以为项目设置暂存密钥和生产密钥,并创建两种用于测试目的的应用程序并发布给最终用户,而无需重复更改。 这些概念可以在另一篇文章中进行解释。