Phonegap cordova.file не определен

У меня есть приложение 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, но это не сработало.


person AlexEve    schedule 21.02.2018    source источник


Ответы (2)


Некоторые идеи:

  • Убедитесь, что файловый плагин устанавливается. Вы должны быть в состоянии проверить это в журнале сборки PGB.
  • Проверьте cordova_plugins.js на вкладке «Сеть» веб-инспектора и убедитесь, что плагин файла указан в списке.
  • убедитесь, что ресурсы javascript файловых плагинов также загружаются на вкладке «Сеть» (File.js и т. д.)
person wildabeast    schedule 23.02.2018

У меня только что возникла эта проблема, и после проверки журнала сборки при сборке phonegap я обнаружил, что для моей версии cordova-plugin-file требуется более новая версия phonegap, которую нужно было установить следующим образом:

<preference name="phonegap-version" value="cli-8.0.0" />

http://docs.phonegap.com/phonegap-build/configuring/preferences/#phonegap-version

person frodo2975    schedule 15.09.2018