モバイルとデスクトップの UA を見分ける
User-Agent ガイド
レスポンシブのサーバー処理や統計でデバイス種別を分けるとき、User-Agent を参考にします。最も確実な手がかりは、文字列に含まれる Mobile トークンです。
核心となる手がかり
- デスクトップ:
Windows NT、Macintosh、X11; Linuxのようなプラットフォームトークン - モバイル:
Mobileトークン +AndroidまたはiPhone - タブレット:
iPad、またはAndroidでありながらMobileがない場合
よくある落とし穴
iPadOS の Safari はデスクトップサイトをデフォルトでリクエストするため、macOS とほぼ同じ UA を送ります。そのため iPad トークンが無いことがあり、UA だけでは iPad をデスクトップと誤認しやすくなります。
より良い方法
画面サイズ・タッチ対応といった実際の機能は、UA よりも JavaScript や CSS メディアクエリで検出する方が正確です。UA はサーバー側の一次推定にとどめ、細かい分岐はクライアントで処理することを推奨します。
結局、デバイス判別は UA(サーバー)+ 機能検出(クライアント)を組み合わせたときに最も堅牢になります。