尝试使用TS和HTML5

时间:2018-06-12 07:28:50

标签: html5 typescript html5-filesystem

在我的应用中,我收到了需要保存到本地计算机的string。我正在阅读this指南(html5文件系统教程)。我不得不使用TS(“typescript”:“2.6.1”)并且看起来像API的一部分的问题。以下行给出了两个错误:

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

第一

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

第二

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

任何变通方法或更新的文档? PS我知道这只在Chrome中受支持。

1 个答案:

答案 0 :(得分:1)

此API目前仅为supported in 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);

有关FileSystemFileEntry API的详细信息,请查看this link