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シミュレータが動かないから動作を試すことができないのが残念すぎる。