【问题标题】:Writing to a file from a Chrome packaged app从 Chrome 打包应用写入文件
【发布时间】:2015-12-15 01:03:39
【问题描述】:

下面是我尝试从 Chrome 应用程序写入简单文本文件的代码。

一旦createWriter 被调用,什么都不会发生。无法正常工作,对此的任何意见表示赞赏。

chrome.fileSystem.chooseEntry({type: 'saveFile'}, 
 function(writableFileEntry) {
  writableFileEntry.createWriter(function(writer) {
    writer.onwriteend = function(e){
      console.log("save completed!!");
    };
    writer.onerror = function(e){
        console.log("save failed!!");
    };
    writer.write(new Blob(["Hello World!!!"],{type: 'text/plain'})); 
  }, errorHandler);
});

Mainifest.json

{
 "name": "FileIO",
 "version": "1.0",
 "manifest_version": 2,
 "minimum_chrome_version": "23",
 "app": {
 "background": {
 "scripts": ["background.js", "myscript.js"]
 }
 },
 "icons": {
 "128": "icon.png"
 },
 "permissions": [
 "fileSystem",
  {"fileSystem" : ["write","retainEntries", "directory"] }
 ],
 "file_handlers": {
    "text": {
      "types": [
          "text/*"
      ]
    }
  }
}

【问题讨论】:

  • 你确定它调用了吗?您是如何尝试调试的?
  • 您的清单权限是什么?
  • Supersharp 是对的。对于此类问题,除了 JavaScript 代码之外,请始终发布整个清单。
  • @Xan : 是的,当我看到文件选择器对话框时,选择条目被调用,在我选择文件后,我可以在 line3( writableFileEntry.createWr....... ..)。当 createWriter 被调用时,什么也没有发生...... writer.write(lin10) 处的断点永远不会被击中。
  • @Xan:是的,问题在于没有正确定义 errorHandler 函数。谢谢!!

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


【解决方案1】:

errorHandler 函数被定义在范围之外并导致了问题,将 errorHandler 函数移动到范围内解决了问题!感谢 Xan 帮助解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 2019-01-27
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多