resolLocalFileSystemURL TypeError: Невозможно прочитать свойство then для неопределенного TypeError - PullRequest
0 голосов
/ 18 февраля 2020

Я работаю на Иони c 4 (конденсатор). Я пытаюсь разрешить URL-адрес локальной файловой системы, поэтому я использовал эту функцию resolveLocalFilesystemUrl, но, к сожалению, получаю эту ошибку

TypeError: Cannot read property 'then' of undefined TypeError: Cannot read property 'then' of undefined

Это мой код: constructor(private _file: NativeFile) {} ... .. this._file.resolveLocalFilesystemUrl(nativeFilePath).then((entry: Entry) => { console.log(entry); });

Обратите внимание, что эта функция возвращает обещание

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

У меня была такая же проблема, но я нашел решение! Вы установили плагин для файлов ioni c? Я не знаю конденсатор, но с Cordova: IONI c Cordova плагин добавить Cordova-плагин-файл

0 голосов
/ 18 февраля 2020

Убедитесь, что вы используете правильный плагин. Это то, что вам нужно: https://ionicframework.com/docs/native/file

import { File } from '@ionic-native/file/ngx';

...

constructor(private _file: File) { }

this._file.resolveLocalFilesystemUrl(nativeFilePath).then((entry: Entry) => {
   console.log(entry);
});

Редактировать

Вы уверены, что метод возвращает обещание? Согласно некоторым документам, метод принимает функцию callbak c. Таким образом, ваш код будет выглядеть примерно так:

this._file.resolveLocalFilesystemUrl(
  nativeFilePath,
  (entry: Entry) => console.log(entry),
  err => console.log(err)
);

РЕДАКТИРОВАТЬ 2

Я работаю над проектом на основе Cordova (Ioni c 4) и использую его официально предложенный плагин: https://ionicframework.com/docs/native/file. Он также поддерживается в конденсаторных проектах. Форма официальной документации:

Вам также необходим объект FileEntry для чтения существующего файла. Используйте свойство файла FileEntry, чтобы получить ссылку на файл, а затем создайте новый объект FileReader. Вы можете использовать такие методы, как readAsText, чтобы начать операцию чтения. Когда операция чтения завершена, этот.результат сохраняет результат операции чтения.

function readFile(fileEntry) {
  fileEntry.file(function (file) {
    var reader = new FileReader();

    reader.onloadend = function() {
      console.log("Successful file read: " + this.result);
      displayFileData(fileEntry.fullPath + ": " + this.result);
    };

    reader.readAsText(file);

  }, onErrorReadFile);
}

Официальный Ioni c Документация Официальная документация плагина

...