react-native 使用codepush静默热更新

素颜马尾好姑娘i 2022-03-02 04:46 559阅读 0赞

新版的codepush已经集成到微软的 appcenter。
codepush有两种发布模式 一种 Staging 一种 Production,这里以Staging 演示
react-native版本:0.57.0
appcenter地址 :appcenter

  1. 需要appcenter的账号,如果你有了微软、github googlefacebook的账号,可以直接登录。如果没有那需要你注册上述几个的任何一个账号。
  2. 登录成功后,创建APP,这里以安卓为例

图片描述
选择 add new app
图片描述
填写完成 add new app
图片描述
创建
图片描述

创建成功
图片描述

开始安装一些需要的库

appcenter的客户端

  1. npm install -g appcenter-cli

在你的react-native项目根目录执行,安装codepush的库

  1. npm install --save react-native-code-push

因为codepush里面包含有native代码,安装完成后执行

  1. react-native link react-native-code-push

安装完毕后,登录appcenter,打开终端

  1. appcenter login

这个会打开浏览器,浏览器里面有个token,复制到终端回车即可登录成功

查看 Deployment Key
终端执行

  1. appcenter codepush deployment list -a <这里的参数就是上面图片中让记住-a后面的参数> -k

执行完毕后,会在终端输出
两个key name分别是 Staging、Production。这里我们复制Staging的key。

切换到 android的代码 。打开

  1. // 1. 导入包
  2. import com.microsoft.codepush.react.CodePush;
  3. public class MainApplication extends Application implements ReactApplication {
  4. private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
  5. ...
  6. //2.这里执行link的时候会自动生成
  7. @Override
  8. protected String getJSBundleFile() {
  9. return CodePush.getJSBundleFile();
  10. }
  11. @Override
  12. protected List<ReactPackage> getPackages() {
  13. // 3.用刚才上面复制的key替换下面的 deployment-key-here
  14. return Arrays.<ReactPackage>asList(
  15. new MainReactPackage(),
  16. new CodePush("deployment-key-here", MainApplication.this, BuildConfig.DEBUG)
  17. );
  18. }
  19. };
  20. }

App.js代码

  1. import codePush from "react-native-code-push";
  2. class MyApp extends Component {
  3. }
  4. //使用codepush函数包装你的defaultApp。
  5. MyApp = codePush(MyApp);

发布js到appcenter

  1. appcenter codepush release-react -a <这里的参数就是上面图片中让记住-a后面的参数> -d Staging

发布成功后,在appcenter网页版里面可以看到。

到这里配置都已经ok了。 打包apk,这时候app就具有了热更新的能力, 每次修改好,使用 appcenter发布 app就会按照规则更新。
默认的规则 app在启动的时候会静默检查更新,再下次app重启的时候,会静默安装更新。

发表评论

表情:
评论列表 (有 0 条评论,559人围观)

还没有评论,来说两句吧...

相关阅读

    相关 React Native更新CodePush

    CodePush简介 作为一个跨平台应用开发框架,React Native虽然在动态更新方面提供了动态更新的基础,但是动态更新技术并没有想象的那么完善。好在微软开发了Co