1

私のモバイルWebアプリでは、ビューに動的に合うようにデバイスの画面幅を取得しようとしています。

Motorola AtrixAtrixMB860が800pxの幅を報告している理由は本当に混乱しています。このデバイスのスペックを見ると、その解像度は540x960です。なぜjavascriptで800pxを報告するのですか?私はこのテストページを使用しました: http ://www.quirksmode.org/m/tests/widthtest.html MotorolaAtrixのスクリーンショット

上記のページをいくつかのデバイスでテストしましたが、Motorola atrixを除いて、すべて正しく幅が報告されています。たとえば、ギャラクシーs2は480pxを報告し、ネクサス7は1280pxを報告します

4

1 に答える 1

2

これはAndroid2.3の奇妙な動作です。私がここで見つけたもの:http://tripleodeon.com/2011/12/first-understand-your-screen

ただし、Android v2.3は、通常のブラウザシナリオでは、さらに奇妙な動作を示します。そのscreen.widthは常に800から始まります。これは明らかに、物理的な画面ではなく、ある種の仮想ビューポートです。ただし、ドキュメントにXHTML-MP doctype、または制約付きビューポート(任意のdoctypeの場合)がある場合、値はドキュメントの読み込みイベントの時点で、予想される320または480に切り替わります。

window.outerWidthがトリックを実行するか、ビューポートの幅をデバイスの幅に設定する必要があります

<meta name="viewport" content="width=device-width, user-scalable=no" />
于 2013-01-16T22:05:12.177 に答える