※7/13追記IE10 User Agent String Update に詳細な比較があるのでこちらを参照頂きたい
Release Preview が発表されて暫く経った Windows 8 に同梱される IE10、正式リリースされたわけではないが、利用されている方も多いだろう。ふとWebアプリを作ろうとした際、以下を考えたので IE10 の User Agent を調べてみた。
- Metro UI はタッチ操作が主体だから jQuery Mobile を使いたい
- デスクトップ はマウス操作が主体だから jQuery UI を使いたい
- 上記を判断するには IE10 の User Agent を調べれば良さそう
検証結果
デスクトップ版/Metro UI版 における User-Agent の差異はほぼなかった。IE10 Release Preview の User Agent は以下になる。
OS | デスクトップ版での検証結果 | Metro UI版での検証結果 |
---|---|---|
Windows 8 32bit版 | User-Agent = Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0) | User-Agent = Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0) |
Windows 8 64bit版 | User-Agent = Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) | User-Agent = Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0) |
Windows 8 64bit 版の IE10 では一部 User Agent に差異があるのが、Windows 8 32bit版に関しては、User Agent が完全に一致しており、IE10 がデスクトップ版 と Metro UI 版かを区別できない仕様になっている。
※7/13 追記 IE10 User Agent の挙動は「Metro UI か デスクトップ か」での判断でなく、「HWがタッチデバイス対応をしているか?」や「32bit, 64bit, ARM」等のハードウェア情報により異なるようだ。
検証用のコード
念のため、検証用コードを紹介する。今回は ASP.NET MVC を利用し、以下のコードを Controller に記載することでブラウザ上に User Agent を表示して確認を行った*1。
- HomeController.cs
namespace Mvc4App1.Controllers { public class HomeController : Controller { public ActionResult Index() { ViewBag.Message = "User-Agent = " + Request.UserAgent; return View(); } (中略) }
*1:View側に直接 Razor 記法で書いても良かったかもしれないが…