Ext.isクラスを利用した判定


Ext JS には、Ext.isXXXというメソッドがExtクラスに実装されていました。今回のExt.isは、それとは別物です。このExt.isクラスはシングルトンパターンで実装されているため、生成することなく利用開始することが可能です。
また、おそらくSencha Touchと同一コアを利用する前提で設計されているため、iPhone/iPad/Androidなどスマートフォン端末の判定も行うことができます。


判定用のプロパティ一覧

Ext.isクラスは、メソッドは特になくプロパティを参照するためのクラスです。動作環境の情報を取得するクラスです。
では、判定ができる項目を一覧化します。

Ext.is.Desktop デスクトップ判定、Windows,Mac,Linux上で動作している場合にtrueが設定されます。
Ext.is.Tablet タブレット判定、iPad上で動作している場合にtrueが設定されます。他にもAndroidタブレットもあるのに、iPadの時のみtrueにしているのは謎です。
Ext.is.Phone 電話機判定、デスクトップでなく、iPadで内場合にtrueが設定されます。
Ext.is.iOS iPhone/iPad/iPod上で動作している場合にtrueが設定されます。
Ext.is.Standalone スタンドアローン判定。モバイルSafariのフルスクリーンモードでない場合にtrueが設定されます。window.navigator.standaloneで判断しています。

プラットフォーム判定

上記の判定以外に、プラットフォーム判定が用意されています。
説明は、いいですね・・名前でわかるはずです。

  • Ext.is.iPhone
  • Ext.is.iPad
  • Ext.is.Blackberry
  • Ext.is.Android
  • Ext.is.Mac
  • Ext.is.Windows
  • Ext.is.Linux

まぁ、Ext JS 4 自体をスマートフォンにそのまま読み込ませるのは、ちょっと大きすぎると思いますし、そこはSencha Touchの出番なんですが
Ext Platformと呼ばれる、Extコア部分が共通化されていっているのが垣間見れますね。

Ext.isクラスを利用した判定