2016-06-28 40 views
0

我的Cordova应用程序中的屏幕宽度和高度有问题。我在应用程序启动后立即需要这些值。现在我正在尝试这样的事情:Cordova在'设备就绪'事件中获取屏幕宽度和高度

document.addEventListener('deviceready', function() { 
    'use strict'; 

    var canvas = document.querySelector('#myApp'), 
     ctx = canvas.getContext('2d'), 
     appSize = { 
      w: window.innerWidth, 
      h: window.innerHeight 
     }; 

    canvas.width = window.innerWidth; 
    canvas.height = window.innerHeight; 

    (code code code code) 

}, flase) 

问题是canvas获取0px宽度和0px高度。值得一提的是,当我稍后设置这些值时(例如在'touchstart'事件之后),一切正常。

任何人都知道解决方案吗?

回答

0

只需使用jquery函数。并且应该使用document.ready而不是deviceready。可能是您的设备已在页面加载前运行。 deviceready和document.ready之间的时间差别很小。

$(document).ready(function() 
{ 
var height = $(window).height(); 
var width = $(window).width(); 
// do something 
}); 
+0

好的,现在我明白了。窗口对象此刻还没有准备好。奇怪的是,科尔多瓦文件正在推荐deviceready。顺便说一句,使用jQuery仅用于$(document).ready是一个非常糟糕的主意。 – Amay

+0

jquery不仅适用于document.ready。如果您想编写更少的代码,您必须在cordova应用程序中进一步使用jquery。 –

+0

对不起,我不同意:) – Amay