我已在应用程序和Play商店中更新了我的应用程序,我想强迫我的应用程序用户在App Store和Playstore中更新应用程序的新版本。
答案 0 :(得分:1)
您可以使用此库检查应用的App Store / Play Store版本 react-native-appstore-version-checker。
在博览会应用程序中,您可以使用Constants.nativeAppVersion
获取当前的捆绑软件版本。 docs。
现在,在根反应本机组件中,您可以添加事件侦听器以检测应用程序状态更改。每次应用程序从后台过渡到前景时,您都可以运行逻辑以确定当前版本和最新版本,并提示用户更新应用程序。
import { AppState } from 'react-native';
class Root extends Component {
componentDidMount() {
AppState.addEventListener('change', this._handleAppStateChange);
}
_handleAppStateChange = (nextState) => {
if (nextState === 'active') {
/**
Add code to check for the remote app version.
Compare it with the local version. If they differ, i.e.,
(remote version) !== (local version), then you can show a screen,
with some UI asking for the user to update. (You can probably show
a button, which on press takes the user directly to the store)
*/
}
}
componentWillUnmount() {
AppState.removeEventListener('change', this._handleAppStateChange);
}
}
答案 1 :(得分:1)
import VersionCheck from 'react-native-version-check';
我为此使用了版本检查库,我使用的方法如下。如果版本较低,我将打开一个显示更新按钮的模式,该按钮重定向到应用商店/谷歌播放
componentDidMount() {
this.checkAppUpdate();
}
checkAppUpdate() {
VersionCheck.needUpdate().then(res => {
if (res.isNeeded) {
setTimeout(() => {
this.setState({openModal: true});
});
}
});
}
updateApp = () => {
VersionCheck.getStoreUrl({
appID: 'com.showassist.showassist',
appName,
})
.then(url => {
Linking.canOpenURL(url)
.then(supported => {
if (!supported) {
} else {
return Linking.openURL(url);
}
})
.catch(err => console.error('An error occurred', err));
})
.catch(err => {
console.log(`error is: ${err}`);
});
};
答案 2 :(得分:0)
我正在使用 react-native-version-check-expo 库来实现这一点。对我来说很好。
答案 3 :(得分:0)
为了未来的读者。
如果您使用的是 Expo 管理的工作流程,请使用 react-native-version-check-expo
或 yarn add react-native-version-check-expo
安装此软件包 npm install react-native-version-check-expo
。
有关使用指南,请参阅 Github 上的软件包文档。