При использовании нашего приложения в разработке с Expo, приведенный ниже код возвращает массив результатов, как и ожидалось. Этот же код также работает с опубликованным приложением iOS.
Однако опубликованное приложение Android не будет возвращать никаких результатов из этого кода. Похоже, что ничего не обнаруживает в файловой системе. Мы застряли.
import * as FileSystem from 'expo-file-system';
export const fetchLocalMaps = (resolve, reject) => {
let localMaps = [];
FileSystem.readDirectoryAsync(
FileSystem.documentDirectory
).then(folders => {
//console.log("folders :: fetchLocalMaps :: ",folders);
let totalFolderCount = folders.length;
let loadedFolderCount = 0;
folders.forEach((folder) => {
FileSystem.readDirectoryAsync(
FileSystem.documentDirectory + folder
).then(files => {
//console.log(folder, files);
FileSystem.readAsStringAsync(FileSystem.documentDirectory + folder + "/" + files[files.indexOf('info.data')]).then(content => {
content = JSON.parse(content);
localMaps.push({
id: folder,
title: content.title,
_links: content._links
});
loadedFolderCount += 1;
if(loadedFolderCount == totalFolderCount) {
resolve(localMaps);
}
}).catch(error => reject(error));
}).catch(error => reject(error));
});
}).catch(error => {
reject(error);
});
};