Как обнаружить сенсорное мобильное устройство с помощью 51degrees.mobi - PullRequest
2 голосов
/ 22 декабря 2011

Я использую MobileViewEngines , описанные здесь Скотта Хансельмана, и базу данных браузеров 51Degrees.mobi для визуализации различных представлений для мобильных и настольных браузеров.

Теперь я хочу добавить золотую середину. Для мобильных браузеров High-End (Apple, Android, Windows Phone, Blackberry и т. Д.). Я думаю об использовании сенсорного экрана, чтобы выделить эту категорию.

Итак, два вопроса:

  1. Как определить сенсорный экран с помощью 51Degrees.mobi?
  2. Является ли сенсорный ввод хорошим способом для этого? (Мне нужен рабочий стол, high-end, low-end категории)

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

Я работаю на 51Degrees.mobi.Вы можете определить, является ли устройство сенсорным экраном, используя Request.Browser["IsTouchScreen"]

Однако использование этого элегантно в MVC немного сложнее.Если посмотреть на источник MobileCapableViewEngine, кажется, что вы можете создать новый движок, скопировав мобильный движок и изменив метод FindView:

public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName,
                                              string masterName, bool useCache)
    {
        string overrideViewName = controllerContext.HttpContext.Request.Browser["IsTouchScreen"] == "True"
                                      ? viewName + ".Touch"
                                      : viewName;
        ViewEngineResult result = NewFindView(controllerContext, overrideViewName, masterName, useCache);

        // If we're looking for a Touch view and couldn't find it try again without modifying the viewname
        if (overrideViewName.Contains(".Touch") && (result == null || result.View == null))
        {
            result = NewFindView(controllerContext, viewName, masterName, useCache);
        }
        return result;
    }

Затем этот новый движок необходимо добавить в загрузку мобильных движков.привязать и создать Touch view.

Прежде чем делать это, вам следует подумать, если вы хотите разделить устройства.Например, Nokia X3-02 имеет сравнительно небольшой экран, но будет представлен в том же виде, что и iPad.Возможно, вам следует рассмотреть возможность использования ОС устройства, например Request.Browser["PlatformName"]

Наконец, 51Degrees.mobi Foundation версии 2 представляет наши собственные данные устройства, которые используют имена других возможностей, отличные от предыдущих.Вы можете прочитать об этом по адресу 51Degrees.mobi

1 голос
/ 22 декабря 2011

Большая часть обнаружения касаний выполняется с помощью Javascript. Или в качестве альтернативы CSS.

Modernizr - хорошая библиотека для использования, и я думаю, что она поставляется с MVC3 по умолчанию.

Вы бы так что-то вроде этого:

html.touch div {
    width: 480px;
}

html.no-touch div {
    width: auto;
}

Примеры обнаружения см. this

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

...