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.
Przeważnie urządzenie zmieni klienta użytkownika –