Опция «ПРОСМОТР ПОЛНОГО САЙТА»

Поэтому я работаю над мобильной версией сайта, который я делаю, и до сих пор я занимаюсь контентом мобильных сайтов со своего главного партнера, основного сайта.

Когда я изучаю некоторые мобильные сайты, я замечаю, что у многих из них есть ссылка «просмотреть полный сайт».

Теперь я планирую перенаправить посетителей мобильных устройств через .js в тег заголовка на основном сайте с помощью проверки ширины экрана и т. Д. (Не уверен, что это лучший способ, но до сих пор самый легкий на моем мозге)) (но предложения также приветствуется), но что-то вроде этого

if (screen.width<=XyZ||screen.height<=XyZ) //example iphone size lets say 320x480 window.location.replace("mobile site link here.") 

Опять же, я не знаю, является ли это лучшим способом, но на фиктивных тестах он работает на iPhone, некоторые друзья Droids и один Blackberry. Но это работает.

В любом случае, так что мой вопрос: если я сделаю эту проверку на каждой странице … как я могу получить опцию «просмотреть полный сайт»?

Используйте PHP для обнаружения мобильных пользователей через $_SERVER['HTTP_USER_AGENT'] . Обнаружение JavaScript может быть ненадежным, поскольку многие мобильные браузеры не поддерживают JS. «Просмотр полного сайта» установит cookie для отклонения мобильного сайта, который можно обнаружить. Используйте файлы cookie для отслеживания предпочтений пользователя.

Скелет

 <?php if (isset($_COOKIE['nomobile'])) { $style = "normal"; } else { if (preg_match('/iPhone|(...etc...)/', $_SERVER['HTTP_USER_AGENT'])) { $style = "mobile"; } else { $style = "normal"; } } 

Для страницы «Просмотр полного сайта»:

 <a href="fullsite.php">Full Site</a> 

fullsite.php

 <?php setcookie('nomobile', 'true'); header('Location: index.php'); ?> 

Сначала перейдите по следующему URL-адресу и загрузите файл mobile_detect.php:

http://code.google.com/p/php-mobile-detect/

Затем следуйте инструкциям на странице и загрузите файл mobile_detect.php в корневой каталог. Вставьте следующий код на индекс или домашнюю страницу:

  <?php @include("Mobile_Detect.php"); $detect = new Mobile_Detect(); if ($detect->isMobile() && isset($_COOKIE['mobile'])) { $detect = "false"; } elseif ($detect->isMobile()) { header("Location:http://www.yourmobiledirectory.com"); } ?> 

Вы заметите, что вышеуказанный код проверяет куки-файл под названием «mobile», этот файл cookie устанавливается, когда мобильное устройство перенаправляется на мобильную страницу. Чтобы установить cookie, вставьте следующий код на свою мобильную целевую страницу:

  <?php setcookie("mobile","m", time()+3600, "/"); ?> 

Посмотреть всю статью по адресу: http://www.squidoo.com/php-mobile-redirect

Это не лучший способ, потому что очень часто JS не поддерживается мобильными браузерами.

Вы можете использовать эту функцию:

 function its_mobile_browser($user_agent = '') { if (empty($user_agent)) { $user_agent = $_SERVER['HTTP_USER_AGENT']; if (empty($user_agent)) return false; } if (stripos($user_agent, 'Explorer')!==false || stripos($user_agent, 'Windows')!==false || stripos($user_agent, 'Win NT')!==false || stripos($user_agent, 'FireFox')!==false || stripos($user_agent, 'linux')!==false || stripos($user_agent, 'unix')!==false || stripos($user_agent, 'Macintosh')!==false ) { if (!(stripos($user_agent, 'Opera Mini')!==false || stripos($user_agent, 'WAP')!==false || stripos($user_agent, 'Mobile')!==false || stripos($user_agent, 'Symbian')!==false || stripos($user_agent, 'NetFront')!==false || stripos($user_agent, ' PPC')!==false || stripos($user_agent, 'iPhone')!==false || stripos($user_agent, 'Android')!==false || stripos($user_agent, 'Nokia')!==false || stripos($user_agent, 'Samsung')!==false || stripos($user_agent, 'SonyEricsson')!==false || stripos($user_agent, 'LG')!==false || stripos($user_agent, 'Obigo')!==false || stripos($user_agent, 'SEC-SGHX')!==false || stripos($user_agent, 'Fly')!==false || stripos($user_agent, 'MOT-')!==false || stripos($user_agent, 'Motorola')!==false ) ) return false; } return true; } 

Или что-то лучше, lol 🙂

Вы можете добавить параметр строки запроса к адресу вашего сайта, например ?fullsite=true и включить следующее в условие if>

 var fullsite = getQueryString()["fullsite"]; if (fullsite != "true" && (screen.height <= xyz || screen.width <= abc)) //now redirect 

Вам понадобится следующая строка запроса доступа к функциям. Я взял это отсюда> строка запроса JavaScript

 function getQueryString() { var result = {}, queryString = location.search.substring(1), re = /([^&=]+)=([^&]*)/g, m; while (m = re.exec(queryString)) { result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); } return result; } 

И в ссылке вы можете иметь>

<a href="mysite.com?fullsite=true"> Show me Full Site </a>

===========

Говоря о том, что, пожалуйста, посмотрите CSS-запросы. Это может потребовать изменения архитектуры вашего дизайна, но это очень полезно.

Обнаружение на стороне сервера – это, безусловно, способ сделать это, поскольку у вас нет гарантии того, что JS доступен или даже включен. Отличный PHP-скрипт для обнаружения мобильных телефонов находится здесь http://detectmobilebrowsers.mobi/, и он широко используется в Интернете.