2013-03-14 20 views
11

Androidアプリは無効なサイズ(320x480)をonDeviceReadyイベントに返しますが、数秒後にサイズが正しくなります。PhoneGap/Cordova AndroidがonDeviceReadyの後に画面サイズを取得する

最初に正しいサイズを取得するにはどうすればよいですか?または、正しいサイズを得ることができるイベントがありますか?コルドバ2.5.0を使用して

<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />

function getWindowSizes() { 
 var windowHeight = 0, windowWidth = 0; 
 if (typeof (window.innerWidth) == 'number') { 
     windowHeight = window.innerHeight; 
     windowWidth = window.innerWidth; 
      
 } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 
     windowHeight = document.documentElement.clientHeight; 
     windowWidth = document.documentElement.clientWidth; 
      
 } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { 
    windowHeight = document.body.clientHeight; 
    windowWidth = document.body.clientWidth; 
 } 
 return [windowWidth, windowHeight]; 
} 

ビューポート:

は私がサイズを取得するには、この機能を使用しています。

UPD:
このスクリーンショットアプリケーションで見るように、より小さなサイズで起動します。空のCordovaプロジェクトでさえ、これを行います。これをどうすれば解決できますか?

enter image description here

ありがとう!

+2

そのことで何らかの進展?答えはどれですか? – Fardin

+0

私は問題があり、進歩はありますか? – poordeveloper

+0

残念ながら私はもうCordovaアプリケーションを開発していません。時間があれば、私は以下の解決策を再現してチェックしようとします。しかし、それがあなたのために働かないなら、それは私のために働かないでしょう。 – dymv

答えて

3

メタヘッダーインデックスの高さ、幅、密度のプロパティを削除します。

+0

答えをもう少し詳細に説明できますか?盲目的な推測のように見える... – Trinimon

+1

私はを使用する。 – Thierry

0

アプリケーションクラス(index.css内)のposition:absoluteプロパティを削除してみてください。これは私のために働く。

1

ヘッダーのtarget-densitydpiを削除してみます。

デバイスのdpiは物理ピクセルに基づいていますが、cssピクセルは論理ピクセルですが、それらは互いに異なる場合があります。強制的に同じにすると、画面が引き伸ばされます。

window.devicePixelRatioは、変換の結果、あなたを与える可能性があり(webkitの上)

更新:。

このリンクは、それがどのように動作するかについてもう少し詳しく説明します。 https://petelepage.com/blog/2013/02/viewport-target-densitydpi-support-is-being-deprecated/

+0

Firefoxが提供する'window.devicePixelRatio'の値も同様です。 – Chris

関連する問題