Обнаружение мобильных браузеров в Rails 3
Я ищу некоторые мобильные макеты в своем приложении и изучал способы обнаружения мобильных браузеров и обслуживания мобильных макетов.
Я наткнулся на это: http://www.arctickiwi.com/blog/mobile-enable-your-ruby-on-rails-site-for-small-screens
Но использование массива ключевых слов кажется мне немного хрупким. Что делать, если ключевые слова меняются? Кто-нибудь сталкивается с любыми драгоценными камнями или плагинами или другими стратегиями будущего доказательства?
Ответы
Ответ 1
На самом деле существует гораздо более простое регулярное выражение, которое вы можете использовать. Этот подход описан в Railscast и позволяет загружать различные JS и определять различные взаимодействия страниц для мобильных устройств.
По существу вы получаете функцию, которая просто проверяет, что пользовательский агент содержит "Мобильный" или "WebOS":
def mobile_device?
if session[:mobile_param]
session[:mobile_param] == "1"
else
request.user_agent =~ /Mobile|webOS/
end
end
Ответ 2
Лучший способ - использовать поддерживаемый плагин/драгоценный камень, например browser
Вы просто не можете следить за всеми браузерами с помощью пользовательских user_agents.
Например, Opera 11.50 имеет следующий user_agent
:
Opera/9.80 (Android 2.3.7; Linux; Opera Mobi/ADR-1111021303; U; en-GB) Presto/2.9.201 Version/11.50
Это абсолютно неузнаваемо с
request.user_agent =~ /Mobile|webOS/
Ответ 3
Подумайте о том, чтобы уйти от реального приложения rails на этом и просто изменить CSS, который ставит вашу страницу, так что вам нужно только переписать таблицу стилей
В принципе, css может обнаруживать, когда ширина страницы мала (например, мобильный браузер), такой как
<link rel="stylesheet" href="handheld.css"
media="only screen and (max-device width:480px)"/>
и вы можете использовать это, чтобы иметь два разных css handheld.css and normal.css
например
Ресурсы
Где я получил этот фрагмент кода
и статья, ссылающаяся на статью