В проекте React Native Expo я использую Expo DocumentPicker для выбора файла JSON и загрузки его в приложение.
На современной версии Android с этим проблем нет, в проводнике я выбираю нужный JSON файл и загрузите его. Но в более старых версиях Android (7, 8) я не могу выбрать файл JSON, я вижу его в проводнике, но он недоступен для выбора.
Если я удалю тип : 'application/json', я могу выбрать файл json, но для выбора доступны и другие типы файлов.
const uploadJsonFile = async () => {
try {
const file = await DocumentPicker.getDocumentAsync({
copyToCacheDirectory: true,
type: 'application/json',
});
setUploadedBackup(file.assets);
} catch (err) {
console.log(err);
}
};
Как решить эту проблему? Я могу узнать версию Android и, если версия ниже определенного значения, не указывать тип файла для выбора. А с какой версии Android нет проблем с выбором application/json?
Обновить
У меня пришел к такому решению :
import * as mime from 'react-native-mime-types';
import * as Device from 'expo-device';
const androidVersion = Device.osVersion;
const uploadJsonFile = async () => {
const fileMimeType = Number(androidVersion) < 12 ? 'application/octet-stream' : 'application/json';
try {
const file = await DocumentPicker.getDocumentAsync({
copyToCacheDirectory: true,
type: fileMimeType,
});
if (!file.assets) return;
const mimeType = mime.lookup(file.assets[0].uri);
if (
file.assets &&
mimeType === 'application/json' &&
file.assets[0].name.startsWith('app-name-file')
) {
setUploadedBackup(file.assets);
} else {
showToast(t('wrongFileType'));
return;
}
} catch (err) {
console.log(err);
}
};
Подробнее здесь: https://stackoverflow.com/questions/790 ... r-versions
Выбор и загрузка файла *.json с помощью Expo DocumentPicker в старых версиях Android ⇐ Android
Форум для тех, кто программирует под Android
1730037519
Anonymous
В проекте React Native Expo я использую Expo DocumentPicker для выбора файла JSON и загрузки его в приложение.
На современной версии Android с этим проблем нет, в проводнике я выбираю нужный JSON файл и загрузите его. Но в более старых версиях Android (7, 8) я не могу выбрать файл JSON, я вижу его в проводнике, но он недоступен для выбора.
Если я удалю тип : 'application/json', я могу выбрать файл json, но для выбора доступны и другие типы файлов.
const uploadJsonFile = async () => {
try {
const file = await DocumentPicker.getDocumentAsync({
copyToCacheDirectory: true,
type: 'application/json',
});
setUploadedBackup(file.assets);
} catch (err) {
console.log(err);
}
};
Как решить эту проблему? Я могу узнать версию Android и, если версия ниже определенного значения, не указывать тип файла для выбора. А с какой версии Android нет проблем с выбором application/json?
[b]Обновить[/b]
У меня пришел к такому решению :
import * as mime from 'react-native-mime-types';
import * as Device from 'expo-device';
const androidVersion = Device.osVersion;
const uploadJsonFile = async () => {
const fileMimeType = Number(androidVersion) < 12 ? 'application/octet-stream' : 'application/json';
try {
const file = await DocumentPicker.getDocumentAsync({
copyToCacheDirectory: true,
type: fileMimeType,
});
if (!file.assets) return;
const mimeType = mime.lookup(file.assets[0].uri);
if (
file.assets &&
mimeType === 'application/json' &&
file.assets[0].name.startsWith('app-name-file')
) {
setUploadedBackup(file.assets);
} else {
showToast(t('wrongFileType'));
return;
}
} catch (err) {
console.log(err);
}
};
Подробнее здесь: [url]https://stackoverflow.com/questions/79095044/selecting-and-loading-a-json-file-using-expo-documentpicker-in-older-versions[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия