2011-08-15 8 views
5

mojej konfiguracji: Szyny 3.0.9 Ruby 1.9.2Rails 3 wykryć żądania pochodzące od klientów mobilnych

Moja aplikacja musi służyć do mobilnego układu vs. WWW W zależności od pochodzenia żądanie użytkownika. Muszę obsługiwać wszystkie główne interfejsy klienta mobilnego, takie jak iPhone, Android, Blackberry itp. Jaki jest najprostszy sposób na wykrycie tego w moim kodzie?

Odpowiedz

8

Najprostszym sposobem, aby to zrobić jest analizować request.user_agent przez RegEx /mobile | webOS/. mobilne Pełny zmienna/wersja może być zapisany w sesji, a pomocnik będzie przydatna m.in. mobilną CSS:

#controller 
def mobile_device? 
    if session[:mobile_param] 
    session[:mobile_param] == "1" 
    else 
    request.user_agent =~ /Mobile|webOS/ 
    end 
end 

helper_method :mobile_device? 


#layout 
<%= stylesheet_link_tag 'mobile' if mobile_device? %> 

Railscasts 199 to przewodnik krok po kroku dla Ciebie.

7

Zwróci to User Agent.

request.user_agent =~ /Mobile|Blackberry|Android/ # OR WHATEVER