携帯サイト

新商品の発売関係で午前中まるまるつぶれた。バラバラと依頼せず、ドバッと依頼され、いっきに片付けたいものだ。

たとえば料理人に材料を渡して「○○を3人分作って」と依頼した場合、料理人の手間は一人分だろうが三人分だろうがそれほど手間は変わらない。ところが一通り料理が完了して「はいどうぞ」と完成した料理を出した途端、「もう一人分作ってくれる?」なんて材料を再び渡されると手間はまるまる2倍である。最初から「四人分作って」といえば!!

先日、全体朝礼で社長が「店頭で携帯電話を使ってホームページで商品を確認するお客さんがいるそうだ」というような事を…

最近流行の「フルブラウザ」ならとりあえず現状のサイトでも見ることはできるかもしれないけど、まだまだ「フルブラウザ」じゃない場合が多いだろうし、やっぱり携帯で見るのなら軽い方がいいよなぁ。

ちょうど1年前に「携帯サイトを作る」という企画があったが、そのときは商品を買ってくれた人向けのサイトという位置づけだったため有耶無耶になり企画倒れ。今回は商品を買ってくれそうな人向けのサイトになりそう。

PC用も携帯用のサイトのトップページのURLは同じだがPCでアクセスした場合はPC用のページが表示され、携帯でアクセスした場合は携帯用が表示されるようにしたい。ただし、判定させてページ切り替えのために自動ジャンプとかはさせない。かつ、ページのメンテナンスも簡単にしたいなぁ。

さてどうやろうかなぁと今朝風呂に入りながら考えていたら遅刻しそうになったが、アイデアが浮かんだ。

まずはデフォルトで表示される優先順位をindex.aspを一番にしてindex.htmlを二番にする。

www.○○○○.co.jp/
でアクセスした場合はindex.aspが表示されることになるが、index.asp内でhtmlを記述するのではなく、既存のindex.htmlはそのまま使いたい。(メンテナンスの都合上)

ならば、携帯用のページも別途用意する。(htmlファイルならば同僚にも作ってもらえるため、後々のメンテナンスに支障がない)

仮に
PC用のページ:index.html (従来のトップページ)
携帯用のページ:keitai.html
とした場合

index.aspを次のようにしてみた。

agent = Request.ServerVariables(“HTTP_USER_AGENT”)

ここにagentの判定を書く
携帯電話でアクセス&フルブラウザではない→ck=1

if ck = 1 then
  fp = Server.MapPath(“./keitai.html”)  ‘携帯用のページ
else
  fp = Server.MapPath(“./index.html”)  ‘PC用のページ
end if

Set fso = Server.CreateObject(“Scripting.FileSystemObject”)
Set tso = fso.OpenTextFile(fp,1,FALSE)
Do Until tso.AtEndOfStream
  Response.Write tso.ReadLine
Loop
tso.Close
Set fso = Nothing

この方法ならば
PC用のページ:index.html (従来のトップページ)
携帯のフルブラウザ用のページ:keitaiful.html
携帯用のページ:keitai.html
のように3種類用意しても対応可能。

agentの判定処理についてはこちらのページが参考になります。
携帯電話(機器)情報サイト Mobile Guide
ユーザーエージェント(UA)について



関連エントリー