後輩から、PC からのアクセスした場合と、携帯電話からアクセスした場合で表示する画面を変更するためにはどうするのか??
と聞かれていたことを思いだす。
PC、携帯アクセス判別方法の定石の方式は、HTTP ヘッダの「HTTP_USER_AGENT」を取得して判別する方法。

NTTドコモ: 「HTTP_USER_AGENT」の先頭文字列が「DoCoMo」で始まる。
cf. NTTドコモ 公式サイト
au by KDDI: 「HTTP_USER_AGENT」の先頭文字列が「KDDI」で始まる。
cf. KDDI 公式サイト
Softbank: 「HTTP_USER_AGENT」の先頭文字列が「J-PHONE」or「Vodafone」or「SoftBank」で始まる。
PC: 「HTTP_USER_AGENT」の先頭文字列が「Mozilla」で始まる。

上記の様に HTTP ヘッダ「HTTP_USER_AGENT」 文字列から、PC もしくは、キャリアを判別することが可能。
実装方法としては、CGI、サーバーサイドスクリプト等で、if 分なり、switch case 文なりで、PC、キャリア毎にレンダリング文字列を変更する。
ただし、実は今回の要望は、サーバーサイドではなく、クライアントサイドで実現したいというもの。
JavaScript には、window オブジェクトの navigator プロパティから HTTP ヘッダの一部を取得することが可能なので、以下のようなスクリプトを考案した。

<script>
<!--
if (navigator.userAgent.toLowerCase().indexOf("mozilla") < 0)
{
  location.href = "./m/default.htm";
}
!-->
</script>

しかし、携帯電話のブラウザで JavaScript が対応しているかどうかは正直、不明。
よって、無難な方法としては、やはり、エントリーページを作成し、ユーザーに任意選択させる方法だろう。

コメント (0)

コメントの投稿