Titanium mobileの基礎06〜OSによって動作を切り替える
Titanium mobileはクロスプラットフォーム開発環境なので、ひとつコードを書けばiOSでもAndroidでも動くアプリが作れる。
しかし、ネイティブアプリに読み替えてビルドするため、もともとネイティブ開発でも存在しない処理は行えない。
例)Androidでは、クルッと画面を回転して次の画面を表示するアニメーションに未対応。
したがって、プラットフォーム依存になるような処理は対応OSごとに処理を分岐させてコーディングする必要がある。
ポイント
・Ti.Platform.osnameで取得する値を使う。
・Phone, iPod Touch, iPadはosnameによって判定できないので注意。
・判別表は下記参照。
osname | プラットフォーム |
android | Android |
iphone | iPhone, iPod Touch, iPad |
mobileweb | Mobile Web platform |
ソース(抜粋)
app.js
button1.addEventListener('click', function(e){ // Platformによってウィンドウopen方法分岐 if (Ti.Platform.osname == 'iphone') { // iPhoneなら左からのフリップアニメーションで win2.open({ transition:Ti.UI.iPhone.AnimationStyle.FLIP_FROM_LEFT }); } else { // Androidならデフォルト win2.open(); } });
所感
せっかくOS分岐処理を勉強したのに、Titanium studioでiPhoneシミュレータが動かないから動作を試すことができないのが残念すぎる。