LoginSignup
0
0

デバイスやブラウザでハンドリングするにはUserAgentを使用する

Posted at

UserAgentとは

  • エンドユーザが使用しているデバイスやブラウザを認識することができる機能

使用方法

以下のコードをcontrollerに記載することでHTTP_USER_AGENTを取得することができる

request.env["HTTP_USER_AGENT"]
# => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"

よって、下記のようにハンドリングすることができる。

ブラウザによってハンドリング

  def check_user_agent
    ua = request.env['HTTP_USER_AGENT']
    if ua.include? "MSIE"
      p "IEです"
    elsif ua.include? "Firefox"
      p "firefoxです"
    elsif ua.include? "Chrome"
      p "chromeです"
    elsif ua.include? "Opera"
      p "operaです"
    elsif ua.include? "safari"
      p "safariです"
    else
      p "その他"
    end
  end

デバイスによってハンドリング

  • Mobile が含まれている場合、iPhone/iPad/iPod Touch
  • Android が含まれている場合、Android端末
def check_user_agent
  ua = request.env["HTTP_USER_AGENT"]
  if ua.include?('Mobile')
    p "iPhoneです"
  elsif ua.include?('Android'))
    p "Androidです"
  end
end

関連gem

rack-user_agent

UserAgentの拡張機能をしようすることができる。

  1. Gemを追加し、bundle installを実行

    gem 'rack-user_agent'
    
    $ bundle install
    
  2. 下記メソッドが使用するできるようになる

    # フルUserAgent
    request.user_agent
    #=> "Mozilla/5.0 (Macintosh; ..."
    
    # デバイス
    request.device_type
    #=> pc
    
    # os
    request.os
    #=> "Mac OSX"
    
    # ブラウザ
    request.browser
    #=> "Chrome"
    
    # デバイスがpcなのか
    request.from_pc?
    #=> true
    
    # デバイスがスマホなのか
    request.from_smartphone?
    #=> false
    

参考

RailsでUserAgentの情報を取得して簡単に扱いたい - Qiita

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0