如何在Phonegap / JQuery mobile中以编程方式查找设备宽度

时间:2012-02-28 05:48:14

标签: javascript jquery-mobile cordova

我需要找到移动设备的设备宽度。 虽然我们可以指定内容

<meta name="viewport" content="width=device-width; user-scalable=no" />

但我需要以编程方式获取设备宽度以在我的应用程序中计算某些逻辑。如何获得设备宽度?

2 个答案:

答案 0 :(得分:41)

可以通过viewport对象收集window维度:

var viewport = {
    width  : $(window).width(),
    height : $(window).height()
};

//can access dimensions like this:
//viewport.height

虽然您不会总是得到完美的结果,但不同的设备会有不同的行为,这会给出viewport尺寸,而不是屏幕尺寸。

或者,您可以检查data-role="page"元素的宽度以找到device-width(因为它设置为100%的{​​{1}}):

device-width

答案 1 :(得分:18)

不确定提议的解决方案是否按预期工作。你确定你得到了真正的设备宽度吗?

我在我的应用中使用以下代码并且工作正常:

function effectiveDeviceWidth() {
    var deviceWidth = window.orientation == 0 ? window.screen.width : window.screen.height;
    // iOS returns available pixels, Android returns pixels / pixel ratio
    // http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html
    if (navigator.userAgent.indexOf('Android') >= 0 && window.devicePixelRatio) {
        deviceWidth = deviceWidth / window.devicePixelRatio;
    }
    return deviceWidth;
}

希望它可以帮助别人!