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 に答える