こんにちは!kossyです!
さて、今回はRailsで開発中にMacOS以外の様々なユーザーエージェントを試す方法について、
ブログに残してみたいと思います。
環境
Ruby 2.6.3
Rails 6.0.3.4
MacOS Catalina
Chrome 87
検証ツールを使う
chromeの検証ツールは、右クリック => 検証を選択することで開くことができます。
検証ツールを開くと以下のような画面になるかと思います。
ここで、左上のタブレットのマークをクリックすると、画面の大きさが切り替わります。
デフォルトではresponsiveが選択された状態だと思いますが、クリックすると、様々なクライアントの環境を選択することができます。
この機能ですが、画面の大きさが変わるだけでなく、user_agentも変わります。
例えば、Galaxy S5を選択した状態でリクエストをして、デバッグしてみます。
$ request.user_agent => "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36" || Android 5.0からのリクエストとして処理されています。 他のクライアントも試してみましょう。 >|ruby| # Pixel 2の場合 $ request.user_agent => "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36" # iPhone5/SEの場合 $ request.user_agent => "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1" # iPhone Xの場合 $ request.user_agent => "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1" # iPadの場合 $ request.user_agent => "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1" # Surface Duoの場合 $ request.user_agent => "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36"
選択したクライアントごとに、user_agentの返り値が変わっていることが確認できました。
user_agentごとに処理を変えるような機能がある場合に役に立ちそうですね。
勉強になりました。