12 votes

Comment forcer les utilisateurs à mettre à jour l'application en utilisant react native ?

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.

6voto

Kaushik Points 667

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);

   }

}

2voto

Syed Amir Ali Points 11
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}`);
  });
 };

1voto

Nathileo Points 83

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.

0voto

Hp Sharma Points 160

J'utilise react-native-version-check-expo pour y parvenir. Cela fonctionne bien pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X