2012-02-15 4 views
1

Я создаю мобильную версию веб-сайта, но только для смартфонов. Если устройство представляет собой планшет, ноутбук, нетбук, рабочий стол или другое подобное устройство, я хочу, чтобы пользователь автоматически перешел на полный сайт. Если бы это был простой CSS, я бы знал, как это сделать. Однако мобильная версия использует разные шаблоны и скрипты, чем версия полного сайта, и ее необходимо перенаправить соответственно, а не просто использовать другую таблицу стилей.Обнаружение смартфонов Не таблеток

У кого-нибудь есть предложение или статья, которые могут показать, как определить указанные устройства и перенаправить соответственно?

+0

технологии, какой сервер вы работаете? – shanabus

ответ

1

Единственный способ, которым я мог бы найти, чтобы сделать это хак, в котором я:

  1. используемые запросы CSS СМИ для обнаружения телефонов с помощью макс-устройства-ширина

  2. Установить изменения в стиле на этой основе - я изменил цвет тела от # 000000 до # 000001

  3. Используйте OnLoad, чтобы вызвать Javascript, чтобы проверить цвет кузова.

  4. Перенаправление на этой основе. (В моем случае я фактически использовал вызов window.confirm, чтобы предлагать пользователю выбор, а не форсировать перенаправление).

    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
    <title>Phone test</title> 
    <meta name="viewport" content="width=device-width"> 
    <style type="text/css"> 
        body 
        { color: rgb(0, 0, 0);} 
        @media screen and (max-device-width:600px), screen and (max-width:600px) 
        { 
         body{ color: rgb(0, 0, 1);} 
        } 
    </style> 
    <script type="text/javascript"> 
    <!-- 
    function doPhoneCheck() 
    { 
        var col; 
        if(document.body.currentStyle) 
        { 
         col = document.body.currentStyle.color; // IE 
        } 
        else 
        { 
         col = getComputedStyle(document.body).getPropertyValue("color"); 
        } 
        if(col =="rgb(0, 0, 1)") 
        { 
         window.location.href="http://www.apple.com/"; 
        } 
    } 
    //--> 
    </script> 
    

Он обнаруживает все айфонов в 6+, и телефоны Android и Windows, я проверил. Он различает все текущие iPads и против ноутбуков и настольных компьютеров, которые я пробовал.

NB

(1) Для цвета вы должны использовать RGB и оставить пробелы точно так, как написано.

(2) Я нашел аналогичный код, который не обнаружит цвет фона для тела по неизвестной причине.

(3) Ключом к обнаружению стиля css является использование getComputedStyle() (или currentStyle для IE), а не getStyle().

(4) Несмотря на то, изменение цвета тела незаметен, он может быть подавляться путем указания цвета для всех ваших CSS классов и т.д.