我确定我只是忽略了这个问题,但我似乎无法找到如何检查设备 我想检查设备是手机,横向模式平板电脑,纵向模式平板电脑还是其他设备(计算机)。
我拥有的是:
if (Ext.platform.isPhone) {
console.log("phone");
}
if (Ext.platform.isTablet) {
console.log("tablet");
}
var x = Ext.platform;
但是平台未定义(可能是因为这是Sencha Touch 1的方式)。
有谁知道我访问设备检查的正确位置?
答案 0 :(得分:18)
Sencha Environment Detection通过简单的方式提供了大量的光谱。
而不是 Ext.os.is.Tablet ,您可以通过 Ext.os.deviceType 让生活更轻松,它将返回:
注意:通过在网址中添加“?deviceType =”也可以捏造这个值。
http://localhost/mypage.html?deviceType=Tablet
Ext.os.name 是单身人士返回:
浏览器检测的常用功能可通过 Ext.browser.name 获得。
我最近才遇到的东西,我喜欢的是功能检测 - 允许编码类似于Modernizr / YepNope基于设备的能力。 Ext.feature 提供:
要在iOS上检测全屏/应用/主屏幕浏览器模式:
window.navigator.standalone == true
方向 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);
}
});
方向基于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...
}
答案 1 :(得分:4)
使用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))
或者,您也可以使用PhoneGap Device API
答案 2 :(得分:2)
我找到了答案:
似乎情况是Ext.os.is。(平板电脑/手机或其他东西)是真的还是未定义的。如果不是这样,它将是未定义的。
.A。平板电脑上的Ext.os.is.Tablet
是真的,而不是。{/ p>
所以这就是我要找的答案
if(Ext.os.is.Tablet){
this._bIsTablet = true;
}else if(Ext.os.is.Phone){
this._bIsPhone = true;
}else{
this._bIsOther = true;
}