Sencha Environment Detectionは、シンプルな手段で広いスペクトルを提供します。
Ext.os.is.Tabletの代わりに、次の値を返すExt.os.deviceTypeを介して作業を楽にすることができます:
注意: この値は、URL に "?deviceType=" を追加することで偽装することもできます。
http://localhost/mypage.html?deviceType=Tablet
Ext.os.nameは以下を返すシングルトンです。
- iOS
- アンドロイド
- WebOS
- ブラックベリー
- RIMタブレット
- マックOS
- ウィンドウズ
- Linux
- バダ
- 他の
ブラウザー検出の通常の機能は、Ext.browser.nameを介して利用できます。
私が最近遭遇したのは、私が気に入っている機能検出です。これにより、デバイスの機能に基づいて Modernizr / YepNope と同様のコーディングが可能になります。Ext.featureは以下を提供します:
- Ext.feature.has.Audio
- Ext.feature.has.Canvas
- Ext.feature.has.ClassList
- Ext.feature.has.CreateContextualFragment
- Ext.feature.has.Css3dTransforms
- Ext.feature.has.CssAnimations
- Ext.feature.has.CssTransforms
- Ext.feature.has.CssTransitions
- Ext.feature.has.DeviceMotion
- Ext.feature.has.Geolocation
- Ext.feature.has.History
- Ext.feature.has.Orientation
- Ext.feature.has.OrientationChange
- Ext.feature.has.Range
- Ext.feature.has.SqlDatabase
- Ext.feature.has.Svg
- Ext.feature.has.Touch
- Ext.feature.has.ビデオ
- Ext.feature.has.Vml
- Ext.feature.has.WebSockets
iOS でフルスクリーン/アプリ/ホームスクリーン ブラウザ モードを検出するには:
window.navigator.standalone == true
Orientation Ext.device.Orientationと向きの変更:
Ext.device.Orientation.on({
scope: this,
orientationchange: function(e) {
console.log('Alpha: ', e.alpha);
console.log('Beta: ', e.beta);
console.log('Gamma: ', e.gamma);
}
});
方向はビューポートに基づきます。私は通常、より信頼性の高いリスナーを追加します。
onOrientationChange: function(viewport, orientation, width, height) {
// test trigger and values
console.log('o:' + orientation + ' w:' + width + ' h:' + height);
if (width > height) {
orientation = 'landscape';
} else {
orientation = 'portrait';
}
// add handlers here...
}