Rails 3 detect request coming from mobile clients

后端 未结 2 1639
不知归路
不知归路 2021-01-12 18:22

My setup: Rails 3.0.9, Ruby 1.9.2

My app needs to serve up a mobile vs. web layout depending on the request\'s origin. I need to support all the major mobile client

相关标签:
2条回答
  • 2021-01-12 18:39

    It will return User Agent.

    request.user_agent =~ /Mobile|Blackberry|Android/ # OR WHATEVER
    
    0 讨论(0)
  • 2021-01-12 18:42

    The easiest way to do it is parse request.user_agent by RegEx /Mobile|webOS/. Mobile/Full version variable can be saved into session, and helper will be useful to include mobile 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 is a step-by-step guide for you.

    0 讨论(0)
提交回复
热议问题