Как показать текущую метку версии CodePush в приложении Android React Native?
Ищете что-то вроде:
<Text>VERSION={CodePush.VersionLabel}</Text>
Где CodePush.VersionLabel - это что-то вроде "v6", которое отображается в code-push deployment ls <MyApp>
Я хотел бы показать это внизу моего экрана входа.
Ответы
Ответ 1
componentDidMount(){
codePush.getUpdateMetadata().then((metadata) =>{
this.setState({label: metadata.label, version: metadata.appVersion, description: metadata.description});
});
}
render() {
return(
<Text>{this.state.version}.{this.state.label}</Text>
);
}
Примечание. Свойством .label
является внутренний номер сборки, используемый CodePush (например, v24
)
Ответ 2
componentDidMount() {
CodePush.getCurrentPackage().then((update)=> {
console.log('####### CodePush', update);
});
}
Ответ 3
Если доступных обновлений нет, getUpdateMetadata() возвращает null...
Временное решение:
import codePush from "react-native-code-push";
async function getAppVersion() {
const [{ appVersion }, update] = await Promise.all([
codePush.getConfiguration(),
codePush.getUpdateMetadata()
]);
if (!update) {
return 'v${appVersion}';
}
const label = update.label.substring(1);
return 'v${appVersion} rev.${label}';
};
export { getAppVersion };
Пример вывода: v1.4.4 " ИЛИ v1.4.4 rev.5" в зависимости от состояния.