Na komputerze SO zadano pytanie dotyczące agenta użytkownika iPhone 4 i agenta użytkownika iOS 5.0.Wykrywanie iPhone'a 5 i dowolnego urządzenia z systemem iOS pod nim
Używam następujących elementów do wykrywania różnych urządzeń mobilnych, rzutni i ekranu.
Chciałbym móc odróżnić iPhone'a 5 od wszystkich innych urządzeń z systemem iOS. O ile mi wiadomo, linia, której używam do wykrywania agenta użytkownika systemu iOS 5.0 var iPhone5
, miałaby również zastosowanie do dowolnego urządzenia iOS 5.0 z systemem iOS, więc pod względem technicznym jest niepoprawne.
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
jest stosunek fizycznych pikseli oraz pikseli niezależny od urządzenia (dipów) na urządzeniu. window.devicePixelRatio
= fizyczne piksele/spadki.
Więcej informacji here.
@nhahtdh: Dobrze, że to agent użytkownika iOS 5.0 nie iPhone 5. Pamiętaj, iOS 5.0 można uruchomić na dowolnym urządzeniu z iOS w tym iPhone 5, jednak ja lubię rozróżniać iPhone'a 4 i iPhone'a 5 na przykład. – fuzz
@nhahtdh: Dlaczego chcesz komentować, a następnie głosować, aby zamknąć? A także, czy chcesz podać powód? – fuzz
To była odurzona reakcja bez uważnego czytania o co pytasz. – nhahtdh