私はコルドバが初めてです。私は最初の小さなアプリを作成し、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);
}