2016-06-28 43 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