Подтвердить что ты не робот

Обнаружение мобильных браузеров в Rails 3

Я ищу некоторые мобильные макеты в своем приложении и изучал способы обнаружения мобильных браузеров и обслуживания мобильных макетов.

Я наткнулся на это: http://www.arctickiwi.com/blog/mobile-enable-your-ruby-on-rails-site-for-small-screens

Но использование массива ключевых слов кажется мне немного хрупким. Что делать, если ключевые слова меняются? Кто-нибудь сталкивается с любыми драгоценными камнями или плагинами или другими стратегиями будущего доказательства?

4b9b3361

Ответ 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 например

Ресурсы

Где я получил этот фрагмент кода

и статья, ссылающаяся на статью