2014-04-17 17 views
12

Czekając na elastyczne projektowanie znaleźć drogę do miejsca Legacy internetowej, chciałbym przekierować przeglądarkę do wersji mobilnej, jeśli ekran jest mniejszy niż 480pxNowsze metody wykrywania małym ekranie

Polowanie wokół Przyszedłem z

var isSmall = window.matchMedia ? 
       window.matchMedia("screen and (max-width: 480px)") : 
       screen.width<=480; 

Pytanie

jest to dopuszczalne w 2014 czy istnieje lepsze/bezpieczniejsze/nowszy sposób robić to, co chcę bez użycia userAgent Sniffing?

Odniesienia

+1

Upewnij się, aby sprawdzić na iPhone 4+, ponieważ mają szerokość ekranu "640px", ale zgłaszają szerokość ekranu jako "320px" ze względu na starsze wersje. – gaynorvader

+0

Ale ponieważ obsługują one matchMedia, o ile rozumiem, to nie zwróci false przed użyciem screen.width? – mplungjan

+0

Fwiw, niewielka zaleta, jaką masz przy wąchaniu agenta użytkownika, polega na tym, że możesz wykonać tę stronę serwera, co powoduje nieco szybsze działanie, ponieważ przekierowanie nie zawiera dokumentu. Prawdopodobnie chciałbyś jednak, aby przełącznik między plikami mobilnymi a komputerami był oparty na plikach cookie. –

Odpowiedz

0

Tak, jest tam wiele trudnych dróg do wyboru :) szerokość okna, ale widok z naszego zespołu nie trzeba zawierać żadnych sztuczek, aby wiedzieć, windows.width ponieważ jQuery posiada funkcję .width() takich jak:

var window_width = $(window).width(); 
if(window_width <= 480){ 
    console.log(window_width); 
} 

Iphone 4S, Iphone 5, iPhone 5S każdy za Szerokość ekranu to 320px. Rozdzielczość dla urządzeń mobilnych nie jest szerokością ekranu telefonu komórkowego. więc jeśli uwzględnisz swoje sztuczki, aby poznać szerokość okna lub coś, co tylko zwiększy prędkość ładowania aplikacji, będzie to problemem dla Twojego użytkownika. Ale wiesz, że to był problem projektanta, dlaczego komplikują projekty dla programistów & dla użytkowników końcowych. :)