テキストエリアに入力した文字列をファイルに書き込んで保存し、再度アプリを起動した時に復元させる Titanium Mobile のサンプルコードです。
ユーザデータの保存場所について
———————————————————————-
Ti.Filesystem.resourcesDirectory に保存したファイルは、iOS シミュレータだと app.js と同階層に生成され正常に動作するが、iOS 5 実機だと
また、iCloud 対応のため、ユーザが生成したデータは /Documents に保存し、iCloud に自動バックアップさせた方が良いらしい。
サンプルコード
———————————————————————-
var fileName = ‘sandbox.txt’; // 保存ファイル名
var text = ”;
//———————————————————-
var win = Ti.UI.createWindow(); // ウインドウ生成
//———————————————————-
// テキストエリア生成・設置
var textarea = Ti.UI.createTextArea({
top:10, width:300, height:188, font:{fontSize:20},
returnKeyType: Ti.UI.RETURNKEY_DONE // 完了ボタンにする
});
//———————————————————-
// 起動時にファイルを探して読み込む
var file = Ti.Filesystem.getFile(
//Ti.Filesystem.resourcesDirectory + ‘/’ + fileName
Ti.Filesystem.applicationDataDirectory + ‘../Documents/’ + fileName
);
text = file.read(); // ファイルを読み込み
textarea.value = text; // テキストエリアに値をセット
//———————————————————-
// テキストエリア内で完了キーが押された時
textarea.addEventListener(‘return’,function(){
text = textarea.value;
var file = Ti.Filesystem.getFile(
//Ti.Filesystem.resourcesDirectory + ‘/’ + fileName
Ti.Filesystem.applicationDataDirectory + ‘../Documents/’ + fileName
);
file.write(text); // ファイルに書き込み
});
//———————————————————-
win.add(textarea); // テキストエリア設置
win.open(); // ウインドウを開く
開発環境
———————————————————————-
– Titanium Mobile SDK 1.7.5
– iOS SDK 5.0
参考にさせてもらったページ
———————————————————————-
– [Titanium でリジェクト・iCloud 関連 | Selfkleptomaniac](http://selfkleptomaniac.org/archives/1857)
– [1.7.0 でシミュレータと実機の挙動が違う « Titanium BBS(JP unofficial)](http://ti.masuidrive.jp/topic.php?id=138)
ありがとうございます!