2013-04-25 17 views
5

Wiele urządzeń mobilnych, takich jak mój telefon z Androidem, ma opcję "strony na żądanie". Jestem w trakcie budowania stron mobilnych i chcę, aby ta natywna funkcja działała.Żądaj opcji strony na komputery stacjonarne na urządzeniach mobilnych

Czego oczekuje się od nas jako programistów? Czy istnieje żądanie GET na przykład: leave_mobile = 1 lub czy jest to samo urządzenie zmieniające agenta użytkownika, aby oszukać aplikację, myśląc, że to tylko kolejny komputer?

+2

Przeważnie urządzenie zmieni klienta użytkownika –

Odpowiedz

6

Zrobiłem kilka testów na moich urządzeniach z Androidem i odczytałem programy użytkownika i wydaje się, że to się zmienia. Więc tym, co zrobiłem, aby ta rodzima opcja działała, było przechwytywanie początkowego klienta użytkownika do sesji, a na każde żądanie strony należy porównać ją z tym, który jest wysyłany. Jeśli agent użytkownika nie jest taki sam, należy ponownie ją potwierdzić, jeśli jest to urządzenie mobilne, a jeśli jest to nowa sesja klienta zastępującego nową. Jeśli jednak nowa weryfikacja nie powiedzie się, prawdopodobnie chce znaleźć wersję na komputery, więc wyślij nowe przekierowanie nagłówka.

$DesktopSite = 'www.example.com'; 
$UserAgent = $_SERVER['HTTP_USER_AGENT']; 

if (!isset($_SESSION['use_mobile'])){ 
    $_SESSION['use_mobile'] = 1; 
    $_SESSION['user_agent'] = $UserAgent; 
} else if ($_SESSION['user_agent'] != $UserAgent){ // Check if user-agent has changed 
    if(!preg_match(/*preg match from http://detectmobilebrowsers.com/ */){ 
     $_SESSION['use_mobile'] = 0; 
     $_SESSION['user_agent'] = $UserAgent; // Overwrite old user-agent with new one. 
     header("location: $DesktopSite"); // Send visitor to desktop website. 
    } else { 
     // Visitor still seems to be mobile. 
     $_SESSION['use_mobile'] = 1; 
     $_SESSION['user_agent'] = $UserAgent; // Overwrite old user-agent with new one. 
    } 
} 

Jeśli wprowadzisz mobilnej strony na pulpicie po raz pierwszy, że nie wyśle ​​cię z powrotem do serwisu stacjonarnego, ponieważ stworzy pierwszej sesji. W ten sposób możesz sprawdzić witrynę mobilną również na komputerze, zamiast wysyłać ją z powrotem. Jeśli jednak zmienisz agenta użytkownika, zostaniesz ponownie zweryfikowany i przekierowany na niepowodzenie.

Działa idealnie. Mam nadzieję, że to może pomóc każdemu w przyszłości.

+0

Niektóre dodatkowe informacje: https://productforums.google.com/forum/#!topic/chrome/tz24aCo6F3I – Keale