Man*_* MK 12 android react-native
如何使用已经在 Play 商店上架的 react-native 应用程序实现 Play 商店应用内更新?
我已经通过 API 调用实现了代码推送和内部版本检查,以强制用户更新应用程序。
使用 Codepush:代码推送仅适用于 javascript 更改。但是,在许多情况下,当本机代码发生更改时,我们需要更新整个应用程序。
使用 API 检查:我们需要观察更新何时生效,并更新后端保存的版本号以强制用户更新应用程序。
虽然这两种解决方案都有些零散,但我想实现 Play-store 应用内更新的优雅方法,但找不到如何完成的线索。
Nar*_*oju 11
我没有为此找到任何 react-native 包,所以我不得不为我自己实现它。
但简而言之,这就是您需要做的。
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
}
Run Code Online (Sandbox Code Playgroud)
添加依赖项后单击同步。
InAppUpdateModule.java和InAppUpdatePackage.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;
}
Run Code Online (Sandbox Code Playgroud)
InAppUpdate.js并将其放入您的react-native项目中。InAppUpdate.js任何js文件中,无论您想在哪里使用。并像下面那样使用它。 componentDidMount () {
InAppUpdate.checkUpdate() // this is how you check for update
}
Run Code Online (Sandbox Code Playgroud)
您可以从这里下载所有文件
多一个选项(比 APi 检查更好):使用https://github.com/kimxogus/react-native-version-check从 Play 商店检查最新版本并采取相应措施
VersionCheck.needUpdate()
.then(async res => {
console.log(res.isNeeded); // true
if (res.isNeeded) {
Linking.openURL(await VersionCheck.getStoreUrl()); // open store if update is needed.
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7365 次 |
| 最近记录: |