iPhoneのよいところ
既存のPC用ホームページを閲覧できることです。但し、画面サイズが違うので、横スクロールが生じますので不便といえば不便です。そこで、iPhone画面に合ったHPを別途作成する需要が増えてくると推測しますが、この場合、PC用URLとiPhone用URLの2つを使い分けることになります。ユーザー側から見ればちょっと、煩わしいですね。
URLを一つにできない?
物理的には1つにできませんが、1つのURLを知っていれば、アクセスする端末に応じてPC用HP、iPhone用HPが表示されればよいわけで、プログラム上で制御すれば、1つのURLにできます。
制御方法
PCからアクセスすれば「従来通り、PC用として表示されます。iPhoneから同じURLにアクセスする場合は、それがiPhoneとわかるサインを認識しiPhone用HPに自動的に移動させる工夫をすることになります。
iPhoneからのアクセスには、「iPhone」という文字列が認識できる仕組みとなっているので、この文字列が
あるか否かで振り分けます。
Javascriptで振り分け
<script type="text/javascript">
var agent = navigator.userAgent;
if(agent.indexOf("iPhone") != -1) {
location.href="iPhone用URL";
}
</script>
PHPで振り分け
<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
if((strpos($agent, "iPhone") !== false) || (strpos($agent, "iPod") !== false)) {
$url = "iPhone用URL";
header("Location: $url");
}
?>
Simulator
iPhone実機をもっていない場合は、PCを擬似端末としてチェックしいます。今回は以下の2つのSimulatorを試しました。
- iBBDemo4B
- Firefox 擬似端末(FireMobile SImulator) SB iPhone 3G
チェックの結果、iBBDemo4の方は正確に「iPhone」を表示しますが、Firefox 擬似端末のJavascriptによる表示(navigator.userAgent)では表示しません。
以下は、その詳細
| BBDemo4B | Firefox 擬似端末(FireMobile SImulator) SB iPhone 3G | |
| Javascript | Mozilla/5.0(iPhone;U;CPU iPhone OS 2_1 like Mac OS X;en-us)
AppleWebKit/525.18.1 (KHTML,like Gekko) Version/3.1.1 Mobile/5F136 |
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3)
Gecko/20100401 Firefox/3.6.3 |
| PHP | Mozilla/5.0(iPhone;U;CPU iPhone OS 2_1 like Mac OS X;en-us)
AppleWebKit/525.18.1 (KHTML,like Gekko) Version/3.1.1 Mobile/5F136 |
Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_1 like Mac OS X; ja-jp)
AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5B108 Safari/525.20 |


