
我如何使用我的react原生应用程序实现play商店应用内更新,该应用程序已经在play商店上线?
我已经通过API调用实现了代码推送和内部版本检查,以强制用户更新应用程序。
使用Codepush:代码推送仅适用于javascript更改。然而,在许多情况下,当存在本机代码更改时,我们需要更新整个应用程序。
使用API检查:我们需要观察更新何时上线,并更新后台保存的版本号,以强制用户更新应用程序。
虽然这两种解决方案都有些杂乱无章,但我想实现play-store应用内更新的优雅方法,但找不到如何做到这一点的线索。
发布于 2020-08-30 20:17:11
我没有找到任何用于此的原生反应包,所以我必须自己实现它。
但简而言之,以下是您需要做的。
Android Studio打开react-native项目中的android文件夹,并在build.gradle(app)文件的依赖项部分的末尾添加implementation 'com.google.android.play:core:1.7.3'。如下所示,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.java和InAppUpdatePackage.java文件,并将InAppUpdateModule.java和InAppUpdatePackage.java中的包名称放在MainActivity.java(android/app/src/main/java/<package>/)MainApplication.java,并将我们的<代码>D24添加到<代码>D25方法中,如下所示:<代码>H226<代码>G227 @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 project.
InAppUpdate.js中的任何js文件中,无论您想在何处使用。并按如下方式使用。 componentDidMount () {
InAppUpdate.checkUpdate() // this is how you check for update
}您可以从here下载所有文件
发布于 2021-08-23 15:10:48
有一个相当新的包可以做到这一点:sp-react-native-in-app-updates。
它还通过向用户提示重定向至App Store的本机警报来处理iOS案例。
发布于 2020-01-24 02:08:22
还有一个选择(比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.
}
});https://stackoverflow.com/questions/59833787
复制相似问题