Как правило, адаптация сайтов под мобильные устройства заключается в выполнении одного или нескольких пунктов из следующего списка:

  • подключения специальной версии CSS;
  • подключения нужных JavaScript’ов;
  • создание мобильных шаблонов (templates) с версткой (html).

Сразу оговорюсь, что вопрос мобильной верстки сейчас затрагивать не буду.

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

{% if request.mobile %}
    Mobile
{% else %}
    Not mobile
{% endif %}

 

Или же наша view поменяет вид на такой:

def index(request):
    if not request.mobile:
        return render_to_response('index.html’)
    else:
        return render_to_response('mobile_index.html’)

Теперь дело за малым - сделать так, чтоб в объекте нашего запроса (request’а) появилось свойство mobile. Один из самых простых и достаточно эффективных способов - посмотреть какой USER_AGENT у браузера, который делает запрос. Для этих целей уже есть небольшой, но удобный компонент minidecector, который анализирует USER_AGENT из запроса и выставляет нужное значение свойства request.mobile.

minidetector можно подключать двумя способами:

  • добавление декоратора detect_mobile к нужной view;
  • добавление уже готового Middleware; в этом случае будут обрабатываться все запросы к нашему приложению.

Небольшой пример использования minidetector лежит на GitHub’e: https://github.com/e0ne/BlogSamples/tree/master/MobileTest

 

Другие ссылки по теме:

Напомню, что протестировать это на встроеном в Django веб-сервере не получится, т.к. он работает только локально и вы не зайдете на него со своего мобильного устройста. Настройка Django+Apache+mod_wsgi описана тут: https://code.djangoproject.com/wiki/django_apache_and_mod_wsgi


C каждым днём мобильный интернет становится всё более доступным. Мобильный телефон с gprs перестал быть диковиной. Даже wap постепенно уходит в прошлое. Wap перестаёт устраивать рядовых пользователей и заставляет разработчиков учитывать особенности мобильных браузеров.

Всё больше сайты имеют свою облегчённую, мобильную версию. Но что нужно сделать чтоб и ваш сайт смог корректно отображаться на мобильном браузере?

Для начала он должен соответствовать стандарту XHTML™ 1.0, т.к. большинство браузеров на мобильных телефонах и PDA могут корректно обработать такой контент. Также консорциум w3c месяц назад обнародовал Mobile Web Best Practices 1.0, где находятся Guidelines по созданию сайтов для мобильных устройств. Многие верят в то, что вскоре это станет стандартом.

Среда ASP.NET, если распознаёт в клиенте мобильное устройство, автоматически делает рендеринг с их спецификой, но злоупотреблять этим не стоит. Надеятся прежде всего нужно на себя. Подробнее можно узнать в MSDN и на сайте ASP.NET for Mobile.

Много интересного и полезного находится на dev.mobi и в разделе Mobile Web Initiative консорциума w3c, там же можно сделать валидацию сайта на предмет поддержки его мобильными устройствами.

Остаётся добавить, что наряду с поддержкой разнообразных браузеров для PC и Mac, разработчики не обойдут мимо мобильные устройства.