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の拡張機能をしようすることができる。
-
Gemを追加し、
bundle install
を実行gem 'rack-user_agent'
$ bundle install
-
下記メソッドが使用するできるようになる
# フル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