Ti.Filesystemを使ってiOSとAndroidでローカル保存 | jaxx2104.info

ローカル保存できる場所は各プラットフォームごとで違いがあってややこしいけど、下のように書くのが差分も少ないかなと…。

function doSaveFile(data) {
  var cachefileName = "test.txt"
  var cacheFilePath = Ti.Filesystem.applicationDataDirectory + "cache/"
  var directory = Ti.Filesystem.getFile(cacheFilePath)
  //ディレクトリが存在しない場合
  if (!directory.exists()) {
    directory.createDirectory()
  }
  var cacheFile = Ti.Filesystem.getFile(cacheFilePath + cachefileName)
  var cacheFileData = OS_IOS ? cacheFile.read() : cacheFile.read().text
  if (cacheFileData) {
    //append
    cacheFile.write("add : " + cacheFileData + data)
  } else {
    //new
    cacheFile.write("new : " + data)
  }
}

applicationDataDirectoryでなくexternalStorageDirectoryにすると、 外部ストレージに保存されます。 ほかのアプリケーションで使ったりできるようなファイルを生成する場合はお勧めです。

ファイルに追記する場合はキャッシュ File.append すればよいと思ったけど、Android はそもそも append が使えないのでこんな感じになってます。