/ / Перевірка пристрою в сенча-дотик 2 - сенча-дотик-2

Перевірте пристрій у сенчарі touch 2 - sencha-touch-2

Я впевнений, що просто пропускаю це питання, але, схоже, не знаю, як перевірити пристрій.
Я хочу перевірити, чи це пристрій або телефон, або планшет в альбомному режимі, або планшет в портретному режимі, або інший пристрій (комп'ютер).

Я маю це:

if (Ext.platform.isPhone) {
console.log("phone");
}

if (Ext.platform.isTablet) {
console.log("tablet");
}

var x = Ext.platform;

Але платформа не визначена (можливо, тому, що це шлях Sencha Touch 1).

Хтось знає правильне для мене місце для доступу до перевірки пристрою?

Відповіді:

18 за відповідь № 1

Виявлення навколишнього середовища Сенча пропонує великий спектр простими засобами.

Замість Ext.os.is.Tablet, ви можете полегшити життя за допомогою Ext.os.deviceType який повернеться:

  • Телефон
  • Планшет
  • Робочий стіл

Примітка: це значення можна також змінити, додавши до URL-адреси "? DeviceType =".

http://localhost/mypage.html?deviceType=Tablet

Ext.os.name повертається сингл:

  • IOS
  • Android
  • webOS
  • BlackBerry
  • RIMTablet
  • MacOS
  • Windows
  • Linux
  • Бада
  • Інший

Звичайна здатність виявлення браузера доступна через Ext.browser.name.

Щось, з чим я нещодавно зіткнувся, що мені подобається, - це виявлення функцій - що дозволяє кодування, подібне до Modernizr / YepNope, відключаючи здатність пристрою. Зовнішні особливості пропозиції:

  • Зовнішня характеристика. Має аудіо
  • 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.SqlDatabase
  • Ext.feature.has.Svg
  • Ext.feature.has.Touch
  • Ext.feature.has.Video
  • Ext.feature.has.Vml
  • Ext.feature.has.WebSockets

Щоб виявити режим повноекранного / додаткового / домашнього екрану в iOS:

window.navigator.standalone == true

Орієнтація Вих.пристрій.Орієнтація та зміна орієнтації:

Ext.device.Orientation.on({
scope: this,
orientationchange: function(e) {
console.log("Alpha: ", e.alpha);
console.log("Beta: ", e.beta);
console.log("Gamma: ", e.gamma);
}
});

Орієнтація заснована на Viewport. Я зазвичай додаю слухача, який є більш надійним:

   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...
}

4 для відповіді № 2

Використовуйте Ext.env.OS "s is() метод

Зауважимо, що лише основний компонент і спрощенийЗначення версії є доступний за допомогою прямої перевірки власності. Підтримувані значення: iOS, iPad, iPhone, iPod, Android, WebOS, BlackBerry, Bada, MacOS, Windows, Linux та інше

if (Ext.os.is("Android")) { ... }
if (Ext.os.is.Android2) { ... } // Equivalent to (Ext.os.is.Android && Ext.os.version.equals(2))

if (Ext.os.is.iOS32) { ... } // Equivalent to (Ext.os.is.iOS && Ext.os.version.equals(3.2))

В якості альтернативи також можна використовувати API пристрою PhoneGap


2 для відповіді № 3

Я знайшов відповідь на це:

Здається, так це те, що Ext.os.is. (планшетний ПК / телефон чи щось інше) є правдивим або невизначеним. Якщо це не так, це буде невизначено. І.а. Ext.os.is.Tablet вірно, коли на планшеті, і невизначено, коли ні.

Отже, це відповідь, яку я шукав

if(Ext.os.is.Tablet){
this._bIsTablet = true;
}else if(Ext.os.is.Phone){
this._bIsPhone = true;
}else{
this._bIsOther = true;
}