android - 如何使用react-native实现Android playstore应用内更新

标签 android react-native

immediate flow of play store in-app updates

如何使用已在 Play 商店上线的 React-Native 应用程序实现 Play 商店应用内更新?

我已经通过 API 调用实现了代码推送和内部版本检查,以强制用户更新应用程序。

使用 Codepush:代码推送仅适用于 javascript 更改。但是,在很多情况下,当 native 代码发生更改时,我们需要更新整个应用程序。

通过API检查:我们需要监视更新何时生效,并更新保留在后端的版本号以强制用户更新应用程序。

虽然这两种解决方案都有些不完善,但我想实现 Play 商店应用内更新的优雅方法,但找不到如何完成它的线索。

最佳答案

我没有找到任何与之相关的react-native包,所以我必须自己实现它。

完整教程可以查看here和以下可下载文件here .

但简而言之,这就是您需要做的。

  1. 打开android在你的react-native项目中的文件夹 Android Studio并添加implementation 'com.google.android.play:core:1.7.3'build.gradle(app) 的依赖项部分的末尾文件。就像下面这样,
dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:+"  // From node_modules


    .......
    implementation 'com.google.android.play:core:1.7.3' // add it at the end
}

添加依赖后点击同步。

  • 下载 InAppUpdateModule.javaInAppUpdatePackage.java文件并将它们放在 MainActivity.java 的同一目录中(android/app/src/main/java/<package>/)
  • 更改 InAppUpdateModule.java 中的包名称和InAppUpdatePackage.java到您的项目包名称。
  • 现已开放 MainApplication.java并添加我们的InAppUpdatePackage进入getPackages方法如下,
  •         @Override
            protected List<ReactPackage> getPackages() {
              @SuppressWarnings("UnnecessaryLocalVariable")
              List<ReactPackage> packages = new PackageList(this).getPackages();
              // Packages that cannot be autolinked yet can be added manually here, for example:
               //  packages.add(new MyReactNativePackage());
                packages.add(new InAppUpdatePackage());
              return packages;
            }
    
  • 下载 InAppUpdate.js并将其放入您的 react-native项目。
  • 导入 InAppUpdate.js在任何 js文件,无论您想在哪里使用。并像下面这样使用它。
  •   componentDidMount () {
        InAppUpdate.checkUpdate() // this is how you check for update 
      }
    
  • 就是这样。
  • 您可以从here下载所有文件

    关于android - 如何使用react-native实现Android playstore应用内更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59833787/

    相关文章:

    android - ScrollView内的水平RecyclerView : how to get focus when vertical scrolling?

    android - 在 Android 中通过通知栏复制粘贴

    android getContentResolver().notifyChange() 不重启我的装载机

    ios - ScrollViewClass 不能未定义 - react native iOS

    react-native - 为 cocoapods-core 找到了多个 podfile,那么我可以删除哪个?

    android - 测量从安卓手机屏幕到用户面部的距离

    listview中的Android edittext失去了对调用notifydatachanged的关注

    objective-c - react native 桥接 : Passing JSON to Swift function

    react-native - 使用连接时出错(react-redux 库的功能)

    ios - 基于环境 fork jsCodeLocation的最佳实践