#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)
})
}