iOS 8 Safariのデスクトップ表示機能について

ついにiPhone 6 & 6 Plusの発売、およびiOS 8のリリースが始まりました。

僕はiPhone 6 Plus 64GBを買いましたがとにかく大きい! 最適化していないアプリはキーボードも拡大されるので文字入力が不便でなりません。 (対応しててもディスプレイの横幅的に届かないの不便なんだけど)

と新端末のレビューもたくさんあがってますが、iOS 8の新機能に関する情報もたくさんあがってきてます。 そんな中でこんな記事を見つけました。

iOS 8の新機能 : Safariでスマートフォン用サイトをデスクトップ用サイトに切り替えるやり方 - Linkman -

「iOS 8」から、Safariで表示されているスマートフォン用サイトをデスクトップ用サイトに切り替えることができるようになっているので紹介したいと思います。

Mobile Safariの新機能なんですが、自分も知らなかった。。。
ということでどうやって実現してるのか軽く調べてみました。

User Agentをみてみた

試してみたっていうかこれが答えなんですが、 デフォルトとデスクトップ表示モードでUser Agentの値が異なってました。

デフォルト

Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A366 Safari/600.1.4  

デスクトップ表示モード

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/538.44 (KHTML, like Gecko) Version/8.0 Safari/538.44  

デスクトップ表示の場合はMac Safariとしてアクセスしてるみたいですね。 しかもOS X 10_10ってリリース前のYosemiteじゃないかっていう...

ちなみに、OS X Yosmite の最新BetaにおけるSafariのUser Agentは

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.22 (KHTML, like Gecko) Version/8.0 Safari/600.1.22  

となっており、ビルド番号(?)がiOS 8とは微妙に異なっています。ここの値はOSのマイナーアップデートでも代わるので実質的にはOS Xと同じと考えて良さそうです。

ちなみにどちらのモードでも画面サイズ等は以下の通りで変化はありませんでした。 (iPhone 6 Plus環境)

window.devicePixelRatio : 3  
window.screen.availWidth : 414  
window.screen.availHeight : 716  

この辺りの挙動をみるにUser Agentを見て表示を切り替えているサイトがこの機能の対象になるだけで、 レスポンシブ表示なサイトは関係ないみたいです。apple.comは切り替えても変わりませんでした。

デフォルトをデスクトップ表示にするような設定は見当たらないので、基本的にはスマホサイトが最初に表示されるみたいですね。

なのでアプリ/Web開発者側で対応しなきゃいけないことはないんじゃないかという気もします。(自信ないですが)

以上ちょっとした調査報告でした。