J'ai mis à jour mon application sur App Store et Playstore et je veux obliger les utilisateurs de mon application à mettre à jour la nouvelle version de l'application sur App Store et Playstore.
Réponses
Trop de publicités?Vous pouvez vérifier la version App Store / Play Store de votre application en utilisant cette bibliothèque react-native-appstore-version-checker .
Dans l'application expo, vous pouvez obtenir la version actuelle du bundle en utilisant Constants.nativeAppVersion
. docs .
Maintenant, dans votre composant react native Root, vous pouvez ajouter un écouteur d'événements pour détecter le changement d'état de l'application. Chaque fois que l'application passe de l'arrière-plan au premier plan, vous pouvez exécuter votre logique pour déterminer la version actuelle et la dernière version et inviter l'utilisateur à mettre à jour l'application.
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);
}
}
import VersionCheck from 'react-native-version-check';
J'ai utilisé la librairie de vérification de version dans ce but et l'approche que j'ai utilisée est la suivante. Si la version est inférieure, j'ouvre une modale sur laquelle un bouton de mise à jour apparaît, et ce bouton redirige vers l'app store/google play.
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}`);
});
};
Pour les futurs lecteurs.
Si vous utilisez le flux de travail géré de l'Expo, installez ce package react-native-version-check-expo
en utilisant yarn add react-native-version-check-expo
o npm install react-native-version-check-expo
.
Consultez la documentation du paquet sur Github pour les directives d'utilisation.
J'utilise react-native-version-check-expo pour y parvenir. Cela fonctionne bien pour moi.