Poprawny. Z mojego iPhone'a: Mozilla / 5.0 (iPhone; CPU iPhone OS 5_0 jak Mac OS X) AppleWebKit / 534.46 (KHTML, jak Gecko) Wersja / 5.1 Mobile / 9A334 Safari / 7534.48.3
Zacząłem od wymienionej tutaj witryny, ale nie miała ona numeru kompilacji zestawu internetowego, który jest wyświetlany w Google Analytics. Bardziej kompletną listę znalazłem na useragentstring.com/pages/Safari .
Znalazłem bardziej kompletną listę w ciągu agenta użytkownika . BTW, ta witryna ma więcej niż tylko ciągi agentów użytkownika iOS. Ponadto strona główna „rozbije” ciąg agenta użytkownika Twojej bieżącej przeglądarki.
@LucasMorgan, dzięki za notatkę! Naprawiłem to w mojej odpowiedzi.
Andrew Steitz,
2
naprawiono ocenę ciągu agenta, usuwając ciąg dla LOWERCASE „iphone os 5_0” w przeciwieństwie do „iPhone OS 5_0”. teraz prawidłowo przypisuję specyficzne klasy iOS 5 do mojego kodu HTML, gdy czyszczenie wielkich liter nie powiodło się.
Cóż, ja osobiście wykryłbym więcej niż tylko iPhone'a, ponieważ w powyższym przykładzie nie renderujesz kodu specyficznego dla iOS 5 na iPady i iPoda touch. Warto również pomyśleć o tym, że wersja w pewnym momencie się powiększy. Moja rekomendacja byłaby prawdopodobnie oczywista dla większości - najpierw wykryj urządzenie mobilne Apple, czyli iPad / iPod / iPhone, a następnie, jeśli tak jest, przeanalizuj wersję ... nie iOS ale prawdopodobnie przeglądarkę, czyli w tym przypadku Wersja / 5.1 byłaby wskaźnikiem. Znając wersję, zastosowałbyś swój kod pod warunkiem „nie niższym niż”.
hndcrftd
1
Używam następujących do wykrywania różnych urządzeń mobilnych, widoku i ekranu. U mnie działa całkiem nieźle, może być pomocny dla innych:
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.devicePixelRatioto stosunek pikseli fizycznych do pikseli niezależnych od urządzenia (spadków) na urządzeniu.
window.devicePixelRatio= fizyczne piksele / spadki.
Dziękuję za odpowiedź, ale pamiętaj, że nie jest to skuteczny sposób i niektóre wersje urządzeń zostaną utracone. Na przykład właśnie sprawdziłem agenta użytkownika na moim starym iPadzie 1 i jest tam napis „... iPad; CPU OS 5_1_1 ...”. Żadna z twoich zmiennych nie wychwyciłaby tego. Potrzebowałbyś wyrażenia regularnego, takiego jakvar iOS5 = /(iPhone|iPad).*OS 5_.*/i.test(navigator.userAgent);
Odpowiedzi:
iPhone:
Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
iPad:
Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
źródło
Wydaje się, że ta witryna zawiera pełną listę, która jest nadal utrzymywana
iPhone, iPod Touch i iPad z iOS 2.0 - 5.1.1 (do tej pory).
Musisz zebrać pełny ciąg agenta użytkownika z informacji wymienionych w kolumnach strony.
źródło
Znalazłem bardziej kompletną listę w ciągu agenta użytkownika . BTW, ta witryna ma więcej niż tylko ciągi agentów użytkownika iOS. Ponadto strona główna „rozbije” ciąg agenta użytkownika Twojej bieżącej przeglądarki.
źródło
naprawiono ocenę ciągu agenta, usuwając ciąg dla LOWERCASE „iphone os 5_0” w przeciwieństwie do „iPhone OS 5_0”. teraz prawidłowo przypisuję specyficzne klasy iOS 5 do mojego kodu HTML, gdy czyszczenie wielkich liter nie powiodło się.
źródło
Używam następujących do wykrywania różnych urządzeń mobilnych, widoku i ekranu. U mnie działa całkiem nieźle, może być pomocny dla innych:
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
to stosunek pikseli fizycznych do pikseli niezależnych od urządzenia (spadków) na urządzeniu.window.devicePixelRatio
= fizyczne piksele / spadki.Więcej informacji tutaj .
źródło
var iOS5 = /(iPhone|iPad).*OS 5_.*/i.test(navigator.userAgent);