Получите последнюю доступную версию для пользователей appstore и play market

#react-native #google-play #app-store

Вопрос:

У меня есть некоторые проблемы, мне нужно проверить последнюю доступную версию приложения для текущего пользователя с помощью react-native. Я сделал поэтапный выпуск для 20% пользователей для appstore и google play market, но пакет react-native-версия-проверьте, пришлите мне последнюю версию приложения для всех пользователей (некоторые пользователи должны получить доступную версию, а не последнюю). Как я могу получить последнюю доступную версию для пользователя?

Ответ №1:

Вы можете использовать react-native-device-info, чтобы получить текущую версию приложения ваших пользователей, затем вы можете использовать react-native-check-версию, чтобы сравнить ее с версией AppStore или play store.

 import { checkVersion, CheckVersionResponse } from "react-native-check-version";
import DeviceInfo from 'react-native-device-info';

// version update check
const [version, setVersion]: [CheckVersionResponse | undefined, Dispatch<SetStateAction<CheckVersionResponse | undefined>>] = useState<CheckVersionResponse | undefined>(undefined)     
const currentVersion: string = DeviceInfo.getVersion()

async function checkV(): Promise<void> {
        const version = await checkVersion({
            currentVersion: currentVersion
        })

   setVersion(version)
}

useEffect(() => {
   checkV()
}, [])
 

Комментарии:

1. Спасибо за ваш ответ, но как я могу проверить, доступна ли последняя версия для текущего пользователя (я использую поэтапный выпуск, поэтому не все пользователи могут получить эту версию)

2. Я думаю, что этот метод предоставит возможность обновления для вашего пользователя, если доступно обновление, потому что пользователь увидит новую версию в AppStore, а на пользовательском устройстве этот метод получит последнюю доступную версию.

Ответ №2:

 import VersionCheck from 'react-native-version-check';
import {Linking } from 'react-native';

versioncontrol = async () =>{
    VersionCheck.needUpdate()
    .then(async res => {
      if (res.isNeeded) {
       Linking.openURL(res.storeUrl)
    
      }else{
        console.log("Update Not Available")
    }).catch(error => {
     console.log(error)
    })
 
  }