Я создал timestamped versionName в build.gradle, как 20150707.1125. Я хочу показать версию пакета в интерактивном приложении в окне. Как я могу получить versionName в коде?
Как получить версиюName в интерактивном приложении на Android?
Ответ 1
Я успешно использовал компонент React Native Device Info, чтобы получить детали сборки, как указано в конфигурации Gradle.
После установки вы можете использовать:
DeviceInfo.getVersion()
Для вывода версии и:
DeviceInfo.getBuildNumber()
Получить номер сборки.
Ответ 2
Если вам нужен номер версии в вашем package.json, вы также можете сделать:
var pkg = require('./package.json');
console.log(pkg.version);
Ответ 3
import { version } from './package.json';
Ответ 4
Я не мог заставить пакет react-native-device-info
работать. Столкнулся с этой проблемой. Возможно, понадобятся изменения в gradle и java, чтобы он заработал.
В любом случае, я получил то, что мне нужно, номер react-native-version-number
. И я счастлив с этим.
import VersionNumber from 'react-native-version-number';
console.log('appVersion:', VersionNumber.appVersion)
Да, и поскольку это касается получения версии из package.json
. Мне кажется, что это неправильно. Я имею в виду, я должен был попробовать это, просто чтобы посмотреть, сработает ли это. Я не понимал, что ресурс будет доступен во время выполнения на устройстве. Это работает, но у меня также есть кое-какая отладка foo buildTypes в моем build.gradle, который я узнал здесь. Таким образом, ее приятно получать в versionName
как 0.1.7-debug
прямо из уст лошадей.
Ответ 5
Я использовал следующий фрагмент для извлечения информации о версии, используя package.json:
import PackageJson from '../../../package' // where package is the package.json file
console.log('version', PackageJson.version)
Надеюсь, поможет.
Ответ 6
Я использовал в качестве ссылки ответ @Marcos Demetrio
Но я использовал выставку, поэтому я сделал это:
import {expo} from '../../app.json'
И в компоненте:
<Label>{expo.version}</Label>
Не требуется установка пакета.
Ответ 7
К сожалению, я пока не могу комментировать, поэтому поместил это в собственный ответ:
Ответ от Snowman больше не работает для RN> = 0.60 (Android). При создании приложения вы получите следующую ошибку:
Error: package is not a valid resource name (reserved Java keyword)
→ см. https://github.com/facebook/react-native/issues/23482
Я сейчас использую ответную нативную информацию об устройстве (см. Ответ Тома Уолтерса), поскольку она уже включена в наш проект:
DeviceInfo.getVersion()
Если у кого-то есть другой вариант без использования response-native-device-info, пожалуйста, дайте мне знать.
Ответ 8
Я старался изо всех сил, чтобы это исправить, и я рад видеть подробное описание для того, чтобы сделать все, что мне было нужно. Reaction-native-version-check
import { Linking } from 'react-native';
import VersionCheck from 'react-native-version-check';
VersionCheck.needUpdate()
.then(async res => {
console.log(res.isNeeded); // true
if (res.isNeeded) {
Linking.openURL(await VersionCheck.getStoreUrl()); // open store if update is needed.
}
});
Ответ 9
Вы можете использовать response-native-device-info
И вы можете получить версию приложения для iOS и Android, вызвав следующий метод.
const version = DeviceInfo.getVersion();
// iOS: "1.0"
// Android: "1.0"
Надеюсь, это поможет.