[ 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 関連 | Selfkleptomaniac1.7.0 でシミュレータと実機の挙動が違う « Titanium BBS(JP unofficial)

ありがとうございます!

コメントを残す

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