5

iPhone 4 ユーザー エージェントとiOS 5.0ユーザー エージェントについて、SO で質問がありました。

以下を使用して、さまざまなモバイル デバイス、ビューポート、および画面を検出します。

iPhone 5 と他のすべての iOS デバイスを区別できるようにしたいと考えています。私の知る限り、iOS 5.0 ユーザー エージェントを検出するために使用している行は、iOS 5.0var iPhone5を実行しているすべての iOS デバイスにも適用されるため、技術的には正しくありません。

var pixelRatio = window.devicePixelRatio || 1;

var viewport = {
    width: window.innerWidth,
    height: window.innerHeight
};

var screen = {
    width: window.screen.availWidth * pixelRatio,
    height: window.screen.availHeight * pixelRatio
};

var iPhone = /iPhone/i.test(navigator.userAgent);
var iPhone4 = (iPhone && pixelRatio == 2);
var iPhone5 = /iPhone OS 5_0/i.test(navigator.userAgent); // ?
var iPad = /iPad/i.test(navigator.userAgent);
var android = /android/i.test(navigator.userAgent);
var webos = /hpwos/i.test(navigator.userAgent);
var iOS = iPhone || iPad;
var mobile = iOS || android || webos;

window.devicePixelRatioデバイス上の物理ピクセルとデバイスに依存しないピクセル (ディップ) の比率です。window.devicePixelRatio= 物理ピクセル / ディップ。

詳細はこちら

4

2 に答える 2

11

画面オブジェクトに基づいて検出してみませんか-

screen.availWidth
screen.availHeight

私のiPhone5では、幅320、高さ548と報告されています。これは、網膜以外の形での解像度です。

ビューポートのサイズを報告するため、window.innerWidthとwindow.innerHeightは使用しないでください。ページを拡大すると、利用可能な画面の適切なサイズではなく、拡大された領域のサイズが報告されます。

于 2012-11-20T22:06:22.597 に答える