Как программно найти ширину устройства в Phonegap / JQuery mobile

Мне нужно найти устройство ширины мобильного устройства. Хотя мы можем указать содержание

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

Но мне нужно программно получить ширину устройства, чтобы вычислить некоторую логику в моем приложении. Как узнать ширину устройства?

Ответы на вопрос(2)

Решение Вопроса

viewport Размеры могут быть собраны черезwindow объект:

    width  : $(window).width(),
    height : $(window).height()
};

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

Хотя вы не всегда получите идеальный результат, разные устройства ведут себя по-разному, и это даетviewport размеры, а не размеры экрана.

В качестве альтернативы вы можете проверить ширинуdata-role="page" элемент, чтобы найтиdevice-width (поскольку он установлен в100% изdevice-width):

var deviceWidth = 0;
$(window).bind('resize', function () {
    deviceWidth = $('[data-role="page"]').first().width();
}).trigger('resize');​​​
 Coder_sLaY28 февр. 2012 г., 07:03
Эй, яшма, мне нужно получить ширину этого устройства в <body>, чтобы я мог разместить myWidth как здесь <div id = "placeholder" style = "width: myWidth; height: 150px"> </ div>
 Jasper28 февр. 2012 г., 07:05
@Coder_sLaY Затем перейдите к моему первому примеру:$('#placeholder').width($(window).width());.
 SpringLearner03 мая 2015 г., 09:58
Скрипка jquery мертва. Можете ли вы обновить свой ответ, чтобы он был полезен для будущих пользователей

что предложенное решение работает как положено. Вы уверены, что вы получаете реальную ширину устройства?

Я использую следующий код в моем приложении, и он отлично работает:

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

Надеюсь, что это может помочь кому-то!

 finitenessofinfinity08 авг. 2015 г., 12:58
Работает отлично! Мне также нужно было отменить условное утверждение, как упомянуто Ильясом, и тогда оно работает.
 Mimouni06 авг. 2015 г., 17:30
это отличная функция. это помогло мне. но чтобы получить хорошую ширину для меня, я обращаюсь: var deviceWidth = window.orientation == 0? window.screen.height: window.screen.width;

Ваш ответ на вопрос