
テキストエリアに入力した文字列をファイルに書き込んで保存し、再度アプリを起動した時に復元させる Titanium Mobile のサンプルコードです。
この記事の目次 非表示
ユーザデータの保存場所について
Ti.Filesystem.resourcesDirectory に保存したファイルは、iOS シミュレータだと app.js と同階層に生成され正常に動作するが、iOS 5 実機だと /AppName.app のアプリケーションバンドルを指し変更不可な領域らしい。
また、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
参考にさせてもらったページ
ありがとうございます!
現場からは以上です。それでは、またッ!!!

