Попытка создать текстовый файл, используя TS и HTML5 - PullRequest
0 голосов
/ 12 июня 2018

В моем приложении я получаю string, который необходимо сохранить на локальном компьютере.Я читаю это руководство (руководство по файловой системе html5).Проблема, которую я должен использовать TS ("typcript": "2.6.1") и выглядит как часть API не поддерживается.Следующая строка дает мне две ошибки:

  window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, this.errorHandler);

first:

[ts] Property 'requestFileSystem' does not exist on type 'Window'.

second:

[ts] Property 'TEMPORARY' does not exist on type 'Window'.

Есть обходной путь или обновленная документация?PS Я в курсе, что это поддерживается только в Chrome.

1 Ответ

0 голосов
/ 12 июня 2018

Этот API в настоящее время поддерживается только в в Chrom и не работает в других браузерах.Однако, если вы используете Chrome, вы должны использовать версию этой функции с префиксом , которая webkitRequestFileSystem:

var requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;

Поддержка также распространяется на window.TEMPORARY.

Теперь, если вы хотите создать файл и записать в него некоторый контент, вам нужно создать так называемый объект записи:

function onInitFs(fs) {
  fs.root.getFile('my-file.txt', {create: true}, function(fileEntry) {
    fileEntry.createWriter(function(fileWriter) {
      fileWriter.onwriteend = function(e) {
        ...
      };

      fileWriter.onerror = function(e) {
        ...
      };

      var blob = new Blob(['Content that goes into the file'], {type: 'text/plain'});

      fileWriter.write(blob);
    }, errorHandler);
  }, errorHandler);
}

requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);

Для получения дополнительной информации о API FileSystemFileEntry ознакомьтесь с эта ссылка .

...