サーバ側のリソースファイルを更新してもアプリ上でダウンロードしたファイルの
中身が変わっていなかったので、その原因を調べてみた。
App.Properties.getString("url", "http://XXXXXXXX.jp/app.json")
上記コードで、接続先を取得しているんですが、
url
のプロパティがないときに第2引数で指定しているURLにアクセスします。
実装中のコードは、url
のプロパティがないため、
毎回第2引数のURLにアクセスしてapp.json
を取得してくる動きになってます。
ただ、実際に動かしてみると、
サーバ側のapp.json
を変更しても、jsonの内容が変わらない現象が発生しました。
サーバへのリクエスト時に、Network.HTTPClientを使ってアクセスしているんですが、
そこのドキュメントを読んでみたところ、cacheを制御するフラグがあり、
フラグの値を変更することで、cacheを無効にできるみたいです。
var client = Titanium.Network.createHTTPClient({
onload : function(e) {
// ------- //
},
cache : false,
});
このフラグを追加したところ、無事、更新後のjsonファイルを取得できるようになりました。
ちなみにこのフラグは、iOSのみで動くらしく、Androidでcacheを無効にするには、
client.setRequestHeader('Cache-Control','no-cache');
client.setRequestHeader('Cache-Control','no-store');
httpクライアントのヘッダ内に、Cache-Control
の定義が必要だそうです。
以下は参考にさせていただいたサイトです。
参考:
Titanium.Network.HTTPClient caches responseData. How do I prevent that?