![]() |
Nicholas C. Zakas is a web software engineer who specializes in user interface design and implementation for web applications using JavaScript, Dynamic HTML, CSS, XML, and XSLT. |
3日(米国時間)、米国においてiPadの販売が開始された。アーリーユーザやメディアが一斉に体験談を発表しており、どの発表も好意的だ。新しいユーザ体験をもたらすとか、マウス以来の新しいデバイスの登場だとみるユーザもいる。日本における販売は4月末になる見通し。
iPadがiPhoneやiPod touchの数に匹敵するほど販売されることになれば、WebデベロッパやWebデザイナとしては対応するブラウザに「iPad Safari」を加えなければならなくなる。そして現実にそうなりそうだ。そうした場合に使えるテクニックをNicholas C. Zakas氏がiPad web development tips - NCZOnlineにおいて紹介している。iPadとiPhone/iPod touchの切り分け方法が簡潔にまとまっており参考になる。紹介されているテクニックは次のとおり。
iPad、iPhone、iPod touchに搭載されているSafariはそれぞれ違うUser-Agent文字列を採用している。これを利用してデバイスを切り分ける。今のところiPhoneという文字列はすべてのデバイスに共通して含められているため、iPhoneの文字列を切り分けに使う場合にはどこの文字列を判定したか注意深くチェックしておく必要がある。
| Safari | User-Agent文字列 |
|---|---|
| iPad Safari (正式版) | Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10 |
| iPad Safari (開発中) | Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10 |
| iPhone Safari | Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 |
| iPod Safari | Mozilla/5.0 (iPod; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 |
JavaScriptでiPadかそうでないかを切り分けるもっとも簡単な方法はnavigator.platformの値を調べること。iPadではnavigator.platformの値が常にiPadになっているため、これを利用する。ブラウザのUser-Agentが変わってもnavigator.platformの値はiPadに固定されている。
| iPaf Safari JavaScript変数 | 内容 |
|---|---|
| navigator.platform | iPad |
function isIPad(){
return navigator.platform == "iPad";
}
iPadとiPhone/iPod touchではスクリーンの解像度(1024x768、480x320)が異なっている。これを利用して切り分ける。screen.widthとscreen.heightはデバイスが垂直方向になっているか水平方向になっているかに関わらず固定値。なお、水平垂直の方向はwindow.orientationで判定できる。
| Safari | JavaScript | 内容 | 備考 |
|---|---|---|---|
| iPad Safari | screen.width | 768 | デバイスの垂直水平関係なく固定値 |
| screen.height | 1024 | デバイスの垂直水平関係なく固定値 | |
| window.orientation | 0 | デバイス垂直時 | |
| window.orientation | 90 | 左へ90度回転させて水平にした場合 | |
| window.orientation | -90 | 右へ90度回転させて水平にした場合 | |
| orientationchange | 回転時イベント | windowsに発生 | |
| iPhone Safari | screen.width | 320 | デバイスの垂直水平関係なく固定値 |
| screen.height | 480 | デバイスの垂直水平関係なく固定値 | |
| iPod Safari | screen.width | 320 | デバイスの垂直水平関係なく固定値 |
| screen.height | 480 | デバイスの垂直水平関係なく固定値 |
前述したように種々の違いはあるものの、iPad SafariもiPhone/iPod touch SafariもMobile Safariであることには違いがなく、基盤部分は同じになっている。このため、これまでiPhone/iPod touch Safari向けに培ってきたテクニックはそのままiPad Safariにも適用できる。
| src=""だけでもリクエストとデータ取得が発生する [2010/3/23] |
| 「High Performance JavaScript」、3月登場 [2010/2/12] |
| 優れたソフトウェア開発者になる6つの方法 [2009/8/25] |
| JavaScriptコールスタックサイズ、ブラウザ比較 [2009/5/22] |
| アイシンの最新安全運転システム - 車両周辺・後方障害物監視、わき見・居眠り判断 [10:30 5/28] |
| ラネクシー、画像処理ソフトウェア開発キットの最新版を64bit版で販売 [10:10 5/28] |
| 東陽テクニカ、1G/10GbE回線対応のポータブルネットワークアナライザ [09:57 5/28] |
| 日本発の取り組み「Mozilla Factory」がスタート [09:30 5/28] |
| 【レポート】クラウド/モバイル/ビッグデータ時代に求められるUIとは - TOBESOFT 金代表 [09:00 5/28] |
|
[遠野なぎこ]二ケタ股告白「股かけで十分幸せ」 [14:21 5/28] エンタメ |
|
「ぬいぐるみ 平和島 静雄 サイケデリックVer.」9月に発売 [14:21 5/28] キャリア |
|
ポケモンとタイアップした「サッポロ一番」が6月に登場 [14:20 5/28] キャリア |
|
秋葉原にて、Xbox360タイトル体験イベントが6月に実施 [14:19 5/28] キャリア |
|
(ネタバレ注意)アニメ「AKB 0048」第5話、消えるセンターノヴァ [14:19 5/28] キャリア |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。