[ Titanium Mobile ] 入力した文字列をファイルに書き込み、次回のアプリ起動時に復元させるサンプルコード

テキストエリアに入力した文字列をファイルに書き込んで保存し、再度アプリを起動した時に復元させる 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

参考にさせてもらったページ
———————————————————————-

– [Titanium でリジェクト・iCloud 関連 | Selfkleptomaniac](http://selfkleptomaniac.org/archives/1857)
– [1.7.0 でシミュレータと実機の挙動が違う « Titanium BBS(JP unofficial)](http://ti.masuidrive.jp/topic.php?id=138)

ありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です