Я пытаюсь отобразить список файлов, которые хранятся на устройстве Android, в моем приложении Cordova, и я использую плагин cordova -file. Однако я не вижу файл, когда нажимаю кнопку просмотра в моем приложении, но вижу файл в системном приложении My Files android.
Вот список папок, которые я повторяю через
[cordova.file.externalRootDirectory,cordova.file.dataDirectory]
На телефоне с Android я вижу, что файлы bu делают следующее:
выбрать / настройки / хранилище / внутреннее хранилище
выбор исследовать
В заголовке emnu написано MyFiles ›хранилище устройства
выбрать данные или скачать ..
На устройстве cordova.file.externalRootDirectory разрешите файл: /// storage / emulated / 0 / download
Однако я не вижу файлов
Вот мой код
$scope.showLocalFileOnAndroid = function () {
$scope.showLocalAndroidFiles = true;
var localURLs = [cordova.file.externalRootDirectory,cordova.file.dataDirectory
];
var index = 0;
var i;
var errorStr = '';
var fileList = [];
var addFileEntry = function (entry) {
var dirReader = entry.createReader();
dirReader.readEntries(
function (entries) {
var i;
for (i = 0; i < entries.length; i++) {
if (entries[i].isDirectory === true) {
// Recursive -- call back into this subdirectory
addFileEntry(entries[i]);
} else {
var ext = entries[i].name.split('.').pop();
if (ext === 'doc' || ext === 'docx' ||
ext === 'rdf' || ext === 'pdf' || ext === 'txt' ||
ext === 'odt') {
fileList.push(entries[i]); // << replace with something useful
}
index++;
}
}
},
function (error) {
console.log('readEntries error: ' + error.code);
errorStr += '<p>readEntries error: ' + error.code + '</p>';
}
);
};
var addError = function (error) {
console.log('getDirectory error: ' + error.code);
errorStr += '<p>getDirectory error: ' + error.code + ', ' + error.message + '</p>';
};
for (i = 0; i < localURLs.length; i++) {
if (localURLs[i] === null || localURLs[i].length === 0) {
continue; // skip blank / non-existent paths for this platform
}
window.resolveLocalFileSystemURL(localURLs[i], addFileEntry, addError);
}
$scope.fileList = fileList;
$scope.localFileError = errorStr;
};
cordova.file.dataDirectory
дважды в массивеlocalURLs
. Я не вижу для этого причины - person Matthias   schedule 28.02.2017file:///storage/emulated/0/download
, которая, как я предполагаю, является смоделированной папкой загрузки, созданной Кордовой, а затем типичной папкой загрузки Android (к которой вы получаете доступ по телефону), напримерsdcard/Download
? - person Matthias   schedule 28.02.2017