如何使用React Native强制用户更新应用程序

时间:2019-10-27 13:35:26

标签: react-native expo

我已在应用程序和Play商店中更新了我的应用程序,我想强迫我的应用程序用户在App Store和Playstore中更新应用程序的新版本。

4 个答案:

答案 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-expoyarn add react-native-version-check-expo 安装此软件包 npm install react-native-version-check-expo

有关使用指南,请参阅 Github 上的软件包文档。