Phonegap – 可靠的页面宽度检测?

任何人都可以推荐一种在Phonegap内置的HTML5 Android App上检测屏幕宽度的好方法吗?

我们的页面相当流畅 – 但我需要为较小的屏幕切换徽标/页脚图形 – 所以我为较小的版本注入样式表 – 似乎一般工作正常,一些手机(HTC Wildfire)似乎认为它们是320px宽度当他们只有240所以我在挣扎!

这是我目前的检测代码 – 任何建议都会非常有用!

干杯保罗

$(document).ready(function() { var pageWidth = $(window).width(); var sizeSelected = "chilliAppBeta"; alert(pageWidth);adjustCSS(); function adjustCSS(){ if (pageWidth >= 0) { if(pageWidth = 300) { sizeSelected = "chilliAppBeta" } } function applyChilliCSS() { var chilliStyleSheet =$(''); $('head').append(chilliStyleSheet); } }); 

您不需要JavaScript根据屏幕尺寸添加其他规则,您可以使用CSS3 Media Queries,例如:

 .smallScreenContent{ display: none; } @media (max-width:400px){ //the following rules will only be used for screens up to 400px width .smallScreenContent{ display: block; } }​ 

请参阅此链接以获取规范和此小提琴(调整结果大小)以进行工作演示 。

我发现正确检测窗口大小的唯一方法是在canvas适合屏幕之前放置几秒钟的超时。 在发布时,它显示在左上角,并且仅在一段时间后展开以适应屏幕。

使用

 $(window).width() // For width $(window).height() // For Height 

或者,您可以检查data-role="page"元素device-width以查找device-width (因为它设置为device-width 100% ):

 var deviceWidth = 0; $(window).bind('resize', function () { deviceWidth = $('[data-role="page"]').first().width()); }).trigger('resize');​​​