Я впевнений, що просто пропускаю це питання, але, схоже, не знаю, як перевірити пристрій.
Я хочу перевірити, чи це пристрій або телефон, або планшет в альбомному режимі, або планшет в портретному режимі, або інший пристрій (комп'ютер).
Я маю це:
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;
}