У меня есть приложение Phonegap, в котором я пытаюсь сохранить файл в хранилище устройства, но после включения плагина cordova-plugin-file
в файл config.xml объект cordova.file
остается неопределенным. Я создаю приложение, используя Phonegap Build, используя cli cli-6.5.0
.
Используя инструменты инспектора Chrome, я вижу, что когда я пытаюсь зарегистрировать объект cordova.file
, он возвращает неопределенное значение, а регистрация cordova
возвращает объект Cordova в журнале.
Вот логи из консоли, как описано выше:
Следующие строки находятся в моем файле config.xml:
<plugin name="cordova-plugin-file" source="npm" />
<preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" />
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,assets,root" />
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
Это код, который я использую для сохранения файла:
window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function(dir) {
console.log("Creating file");
var fileName;
do {
fileName = prompt("Please enter a name for your file", "");
} while(fileName == null || fileName == "");
dir.getFile(fileName, {create:true}, function(file) {
console.log("File created succesfully");
file.createWriter(function(fileWriter) {
console.log("Writing content to file");
fileWriter.write(imageBlob);
}, function(){
console.log('Unable to save file');
});
});
});
Однако эта функция никогда не запускается, и я не вижу никаких журналов в консоли с помощью инструментов инспектора Chrome. imageBlob
— это объект Blob, содержащий изображение base64, которое было преобразовано в объект Blob, но код так и не дошел до этого.
Я также пробовал более старые версии плагина, используя атрибут spec
в файле config.xml, но это не сработало.