React Native 0.60以上集成code push热更新
安装 CodePush CLI
管理 CodePush 账号需要通过 NodeJS-based CLI。只需要在终端输入 npm install -g code-push-cli
,就可以安装了。
安装完毕后,输入 code-push -v
查看版本,如看到版本代表成功。
创建一个CodePush 账号
在终端输入code-push register,会打开注册页面让你选择授权账号。
授权通过之后,CodePush会告诉你“access key”,复制此key到终端即可完成注册。完成注册后会自动登录账号,你的session文件将会写在 /Users/你的用户名/.code-push.config。
相关命令
code-push login 登陆
code-push loout 注销
code-push access-key ls 列出登陆的token
code-push access-key rm 删除某个 access-key
在CodePush服务器注册app
为了让CodePush服务器知道你的app,我们需要向它注册app: 在终端输入code-push app add <appName>
即可完成注册。
注册完成之后会返回一套deployment key,该key在后面步骤中会用到。如果你的应用分为Android和iOS版,那么在向CodePush注册应用的时候需要注册两个App获取两套deployment key,如:
code-push app add MyApp-Android
code-push app add MyApp-iOS
相关命令
code-push app add 在账号里面添加一个新的app
code-push app remove 或者 rm 在账号里移除一个app
code-push app rename 重命名一个存在app
code-push app list 或者 ls 列出账号下面的所有app
code-push app transfer 把app的所有权转移到另外一个账号
集成CodePush SDK(Android)
1.安装RN版code-push插件
npm install --save react-native-code-push
2.到android/app/build.gradle 头部引入codepush.gradle
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
3.到MainApplication.java中添加
import com.microsoft.codepush.react.CodePush;public class MainApplication extends Application implements ReactApplication {private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {...// 添加的内容---------------------------@Overrideprotected String getJSBundleFile() {return CodePush.getJSBundleFile();}// 添加的内容---------------------------};
}
4.在strings.xml 添加deployment key
<string moduleConfig="true" name="CodePushDeploymentKey">你的DeploymentKey</string>
检查更新
在App启动时检查更新,最简单的方式是在根component中进行请求
CodePush.sync({updateDialog: {appendReleaseDescription: false,descriptionPrefix: '\n\n更新内容:\n',title: '更新',mandatoryUpdateMessage: '有最新版本需要更新',mandatoryContinueButtonLabel: '确定'}})
如果你期望更及时的获得更新,可以在每次APP从后台进入前台的时候去主动的检查更新,在应用的根component的componentDidMount
中添加如下代码:
AppState.addEventListener("change", (newState) => {newState === "active" && codePush.sync();
});
sync方法,提供了如下属性以允许你定制sync方法的默认行为:
- deploymentKey (String): 部署key,指定你要查询更新的部署秘钥,默认情况下该值来自于Info.plist(Ios)和MianActivity.java(Android)文件,你可以通过设置该属性来动态查询不同部署key下的更新。
- installMode (codePush.InstallMode): 安装模式,用在向CodePush推送更新时没有设置强制更新(mandatory为true)的情况下,默认codePush.InstallMode.ON_NEXT_RESTART即下一次启动的时候安装。
mandatoryInstallMode (codePush.InstallMode):强制更新,默认codePush.InstallMode.IMMEDIATE。 - minimumBackgroundDuration (Number):该属性用于指定app处于后台多少秒才进行重启已完成更新。默认为0。该属性只在installMode为InstallMode.ON_NEXT_RESUME情况下有效。
- updateDialog (UpdateDialogOptions) :可选的,更新的对话框,默认是null,包含以下属性
appendReleaseDescription (Boolean) - 是否显示更新description,默认false
descriptionPrefix (String) - 更新说明的前缀。 默认是” Description: “
mandatoryContinueButtonLabel (String) - 强制更新的按钮文字. 默认 to “Continue”.
mandatoryUpdateMessage (String) - 强制更新时,更新通知. Defaults to “An update is available that must be installed.”.
optionalIgnoreButtonLabel (String) - 非强制更新时,取消按钮文字. Defaults to “Ignore”.
optionalInstallButtonLabel (String) - 非强制更新时,确认文字. Defaults to “Install”.
optionalUpdateMessage (String) - 非强制更新时,更新通知. Defaults to “An update is available. Would you like to install it?”.
title (String) - 要显示的更新通知的标题. Defaults to “Update available”.
发布更新
通过code-push release-react发布更新
code-push release-react MyApp-iOS ios --t 1.0.0 --dev false --d Production --des "1.优化操作流程" --m true
其中参数–t为二进制(.ipa与apk)安装包的的版本;–dev为是否启用开发者模式(默认为false);–d是要发布更新的环境分Production与Staging(默认为Staging);–des为更新说明;–m 是强制更新。
关于code-push release-react
更多可选的参数,可以在终端输入code-push release-react
进行查看。
另外,我们可以通过code-push deployment ls <appName>
来查看发布详情与此次更新的安装情况。
React Native 0.60以上集成code push热更新相关推荐
- 苹果收购英特尔手机芯片业务;西门子将在华建立 5G 研发中心;React Native 0.60.4 发布 | 极客头条...
快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...
- AppCenter Code Push热更新
codePush已经被微软将其移动到了appcenter中心,后续关于codePush的相关问题都移步到appcenter官网中进行查看https://appcenter.ms 本文只记录通过code ...
- Code Push 热更新使用详细说明和教程
CodePush CodePush是一个微软开发的云服务器.通过它,开发者可以直接在用户的设备上部署手机应用更新.CodePush相当于一个中心仓库,开发者可以推送当前的更新(包括JS/HTML/CS ...
- React Native 0.59.0 发布,使用 React 编写原生应用
React Native 0.59.0 发布了.React Native 使开发者只使用 JavaScript 也能编写原生移动应用. 新版更新亮点: React Hooks React Native ...
- React Native 0.44.3 ----------微信h5支付
本篇记录ios使用ReactNative完成微信h5支付的一些注意事项. a. 支付完成或者取消微信h5支付,会跳转到手机默认的浏览器中(safari),无法回到原App. b. 如何获得支付状态?? ...
- React Native 0.50版本新功能简介
React Native在2017年经历了众多版本的迭代,从本人接触的0.29版本开始,到前不久发布的0.52版本,React Native作为目前最受欢迎的移动跨平台方案.虽然,目前存在着很多的功能 ...
- 爱奇艺回应遭做空;百度 App 部分频道停更;React Native 0.62 发布 | 极客头条
整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 一分钟 ...
- 余承东吐槽苹果续航;微软 IE 浏览器被曝漏洞;React Native 0.61.0 发布 | 极客头条...
快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...
- 9月27日科技资讯|余承东吐槽苹果续航;贾扬清担任阿里巴巴开源技术委员会负责人;React Native 0.61.0 发布
「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 整理 | 胡 ...
最新文章
- Arachni web扫描工具
- 【6 插值方法】实例实战篇
- 我的Go+语言初体验——【三、spx案例测试_许式伟先生推荐补充(附-视频)】
- 联想服务器系统安装bios设置,Windows 8操作系统如何通过Legacy BIOS与UEFI两种模式安装...
- c++ winpcap开发(4)
- 7-4 panic和recover
- 剑指offer面试题[15]-链表中倒数第K个结点
- Reader entry: ���� 乱码
- makefile obj文件路径_makefile中包含的文件的路径
- eclipse的安装与环境配置
- 未来科技计算机作文600字,未来科技作文600字
- 计算机二级c语言题型及考点,全国计算机二级C语言考试题型及考试重点.doc
- Notepad++取消去除文字下面的红色波浪线
- Gramine(原graphene-sgx)软件栈
- 突破领英限制如何查找非好友电话,邮箱技巧
- 文字生成图片的软件有哪些?这篇文章给你介绍三个
- 《零售时代4.0》读后感
- linux学习lesson16
- 计算机硬盘越大运行速度越大吗,固态硬盘越大运行速度越快吗
- Cesium 热力图(可直接使用)