携帯電話用Webシステム

夢のような三連休が終わり、現実(仕事場)に戻ってきた。気温と感覚の落差が激しい…。

年末に作った携帯用システムのメモ書きを今更。

携帯電話用にWebシステムを作る際に最初に決めなければならないのが、どのキャリアに対応させるか、ということ。これで、HTMLの出力とか、使える画像などの制約を決めることができる。出力をどこまで許容するか、ということ。DoCoMo,au,vodafoneで策定されているマークアップ言語も違うし、同じ会社で搭載されているブラウザによっても、マークアップ言語が違い、それに伴う制約がある。JavaScriptも使えない。もちろん、全ての電話機からデバックできるわけでないので、開発ではシミュレータを使う。でも、実環境との差異は否めない。 表示が決まれば、あとは通常のWebシステムと同じように作ることができる。 クライアントがどの会社のどのキャリアか、というのはリクエスト情報の"User-Agent"というキーを持つ値で判別することが出来る。User-Agentには具体的には

HTTP_USER_AGENT=KDDI-SA31 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0

などの文字列が収められている。これらの固有の情報は、各携帯電話会社のホームページから調べることができる(下の方にリンク張ってます)。会社が変わってもVodafoneの従来機はJ-PHONEという文字列が入ったりする。だから、普遍的ではない。

下記はJavaDoCoMo,au,Vodafoneを判別する方法。 requestはjavax.servlet.http.HttpServletRequestクラス。 [java]String userAgent = (String)request.getHeader("User-Agent"); if (-1!=userAgent.indexOf("DoCoMo")) { // キャリアがDoCoMo System.out.println("どこも"); } else if *1|| (-1!=userAgent.indexOf("UP.Browser"))) { // キャリアがau System.out.println("えーゆー"); } else if (-1!=userAgent.indexOf("J-PHONE")) { // キャリアがVodafone System.out.println("ぼーだふぉん"); }[/java] これでキャリアを判別して、表示を分岐させる。今回作ったものは、あまりHTMLの出力分岐を行わなかった。最低限の基本的なHTMLで出力した。(これで意外と色んな機種で動きます。)画像も使わなかったし。

いずれにしろ、最初に要件と設計がちゃんと決められていないと携帯サイト作成は面倒くさい。

自分がauなので、他のは知らないが、最近はフルブラウザ搭載の機種がある。そうなるとちょっと事情が違ってくるのだろうか?Flashコンテンツも使えるようになったらしいし。 まぁ、とりあえず私は、携帯電話でネットサーフィン(死語?)することは殆ど無いので、ぴんと来ないんですが…。

参考

  • EZweb ホームページを作ろう!
  • DoCoMo Net - 作ろうiモードコンテンツ
  • ボーダフォン テクノロジー&サービス
  • 余談:ソーメンチャンプルを作るときは麺を硬めに茹でて、高温で炒めるとべチャットしません。

    *1:-1!=userAgent.indexOf("KDDI"