Что лучше перенаправить, разрешение экрана или пользовательский агент?

Я создал мобильную веб-страницу для сайта, но мне интересно, какой лучший метод для перенаправления. Могу ли я перенаправить их на основе разрешения экрана или агента пользователя?

Я бы предположил, что разрешение экрана будет выглядеть примерно так:

if (screen.width <= 1024) window.location.replace("http://www.site/mobile/") else window.location.replace("http://www.site/"); 

Используя PHP, скрипт будет выглядеть примерно так:

 $useragent=$_SERVER['HTTP_USER_AGENT']; if(preg_match('/android/i',substr($useragent,0,4))) header('Location: http://www,site/mobile/'); 

Один метод предпочтительнее другого? Если да, то в чем преимущества?

Пользовательский агент.

В этот день и возраст экранов сетчатки и тот факт, что на Android-устройстве может быть любое разрешение экрана, о котором вы можете думать, все меньше меньше корреляции между разрешением экрана и платформой. На самом деле, существует множество мобильных устройств (nexus 7, nexus 10, ipad 3+) с тем же или большим разрешением экрана, что и настольные компьютеры. Резолюция просто недостаточно описательна.

С другой стороны, агент пользователя предназначен для того, чтобы рассказать вам, что делает запрос. Вы без сомнения узнаете, что это устройство Android или iOS. Кроме того, на Android я считаю, что планшеты не должны включать строку «мобильный» в свой пользовательский агент Android-y, для еще лучшего таргетинга. Аналогично, у iPad и iPhone есть свой собственный набор строк пользовательского агента, который вы можете учитывать.

Вам нужно подумать, почему вы создали мобильный сайт. Добавляет ли она функциональность (touch) или удаляет лишний вес (3G), упрощает навигацию на меньших экранах? Если вы сделали это для сенсорных устройств, обнаружите наличие касания. Если вы построили его, чтобы обеспечить легкий доступ к маленьким экранам, разрешение экрана может быть выбором (мой SGS3 с 1200×720 увидит полный, и со мной все будет в порядке). Переключение пользовательским агентом, не задумываясь слишком много, является плохой идеей (если «мобильный» в UA хорош, но не все это поддерживает). Вы пойдете на сайт с оптимизированным размером экрана, если пользовательский агент содержит ios? Теперь вы бы этого не сделали, но вы могли бы сделать это несколько лет назад, перед iPad. Что бы вы сделали с сенсорным экраном windows mini pc? Подумайте о функциональности, а не о устройстве, если вы не хотите обновлять все свои сайты на каждом новом устройстве. Нет такой вещи, как «мобильный», есть так много устройств со многими различными размерами и функциями, и новые, которые вы еще не представляете, выходят.

Запишите требования вашего мобильного сайта (коснитесь?) И что он добавляет к простому сайту (лучшая обработка маленького экрана?) И протестируйте их. И пусть они выбрали.

Имейте в виду, что если у вас есть неограниченный план данных или Wi-Fi и устройство с большим экраном, вы обнаружите, что мобильные сайты, которые искалечивают версии полного сайта, просто раздражают, а сайты, которые позволяют сенсорную навигацию и расширенные функциональные возможности, и масштабируются хорошо на любой размер экрана приятно перемещаться.

Во всяком случае, могу ли я предложить, когда / если вы перенаправляете, попробуйте попасть на ту же страницу на другом сайте, а не на домашнюю страницу. Поэтому, если вы находитесь в

 index.php?language=en&page=about__us 

попробуйте перенаправить на

 mobile?language=en&page=about__us 

Для более удобного пользовательского интерфейса. Не предполагайте, что посетители попадают на ваш сайт с домашней страницы.