0

我是科尔多瓦的新手。我做了我的第一个小应用程序并成功地将它部署到 Windows 8 和 Android。现在我开始测试文件系统插件。

我做了一个小测试应用程序,它创建了一个给定大小的文本文件。结果:

  • 在 Android 上,应用程序在 10 到 15 MB 的文件大小之间停止响应而没有错误消息
  • 在 Windows 8 上,应用程序在创建大于 40 KB 的文件时崩溃且没有错误消息(不是 MB !!!它是 KB)
  • 在 Ripple Emulator 上,并不真正支持文件系统插件

(编辑:对于 Windows 8,现在保存 Blob 时 Cordova 代码中存在一个错误。因此,如果将代码更改为仅保存纯字符串,我可以设法将文件保存到 1 GB - 此更改对Android 所以,仍然有 10 MB 的限制 :EditEnd)

我基本上只是从 HTML5 Rocks 文档中复制了代码并构建了一个更大的刺来存储......

那么限制是什么,或者我在这里做错了什么?任何帮助都会很棒!

问候,马库斯

这是我的代码:

function writeFile() {
    window.requestFileSystem(window.PERSISTENT, 5 * 1024 * 1024 /*5MB*/, onInitFsWrite, errorHandler);
}

function onInitFsWrite(fs) {
    console.log('Opened file system: ' + fs.name);

    fs.root.getFile(_fileName, {}, function (fileEntry) {

        // Create a FileWriter object for our FileEntry (log.txt).
        fileEntry.createWriter(function (fileWriter) {

            fileWriter.onwriteend = function (e) {
                msgOut('Write completed.');
            };

            fileWriter.onerror = function (e) {
                msgOut('Write failed: ' + e.toString());
            };

            //create some data
           var text = "1234567890".repeat(parseInt($("#length").val()));

            // Create a new Blob and write it to log.txt.
            var blob = new Blob([text], { type: 'text/plain' });

            fileWriter.write(blob);

        }, errorHandler);

    }, errorHandler);
}

String.prototype.repeat = function (num) {
    return new Array(num + 1).join(this);
}
4

1 回答 1

0

尝试window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onInitFsWrite, errorHandler);

Cordova 的 requestFileSystem API 实现使用 LocalFileSystem 对象而不是窗口对象

于 2014-10-10T19:20:37.233 回答