【问题标题】:Chrome App File System. Can't write local fileChrome 应用程序文件系统。无法写入本地文件
【发布时间】:2015-02-05 15:36:46
【问题描述】:

我正在尝试在 Chrome 应用中写入本地文件。

问题是我无法通过 fileEntry.createWriter 调用。当我调试时,一切都停在那里,控制台中没有出现任何错误。

 chrome.fileSystem.chooseEntry({type: 'saveFile', suggestedName: 'myfile.html'}, function(fileEntry) {
     fileEntry.createWriter(function(fileWriter) {
      fileWriter.onwriteend = function(e) {
        console.log('Write completed.');
      };

      fileWriter.onerror = function(e) {
        console.log('Write failed: ' + e.toString());
      };
      fileWriter.write(new Blob([document.getElementById("HTMLFile").value], {type: 'text/plain'})); 
     }, errorHandler);
  });

Chrome 版本:版本 40.0.2214.28 测试版(64 位) 操作系统:OS X 10.10.1

【问题讨论】:

  • 使用console.log显示一些中间值,比如传递给chooseEntry和createWriter回调的值。这无疑会告诉你出了什么问题。如果您需要更多帮助,请在此处发布一个完整的小应用程序,包括 manifest.json 文件。
  • 为了放大 Marc 的评论,这个问题有很多令人不安的歧义。没有“Chrome Web App”这样的东西,“Packaged App”这个词已经过时了。这些术语错误使清单和事件页面文件以及事件页面错误日志对于回答这个问题更加重要,因为很可能您实际上并没有构建 Chrome 应用程序,或者您的错误在事件页面控制台中盯着你。
  • “打包应用程序”已过时?不是根据developer.chrome.com/extensions/management#type-ExtensionInfo
  • 好的,我确实将标题更改为 Chrome 应用程序。

标签: javascript google-chrome google-chrome-app html5-filesystem


【解决方案1】:

我遇到了类似的问题。您需要在 fileEntry.createWriter() 调用上定义 errorHandler 参数。我还认为您需要将文件的 MIME 类型设置为 text/html。

chrome.fileSystem.chooseEntry({type: 'saveFile', suggestedName:'myfile.html'}, function(fileEntry) {
     fileEntry.createWriter(function(fileWriter) {
       fileWriter.onwriteend = function(e) {
         console.log('Write completed.');
       };

      fileWriter.onerror = function(e) {
        console.log('Write failed: ' + e.toString());
      };
      fileWriter.write(new Blob([document.getElementById("HTMLFile").value], {type: 'text/html'})); 
     }, function(){console.warn("Your error message here");});
  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2011-12-24
    • 2017-06-08
    • 1970-01-01
    相关资源
    最近更新 更多