PEAR::Net_UserAgent_Mobile

DoCoMoマップ利用 PEAR::Net_UserAgent_Mobile_DoCoMoDisplayMap

概要

PHP::PEAR

ケータイコンテンツ開発には必須になるやも。

(ノ・・)ン。。。。。。(((●コロコロッ

ケータイからアクセスしてきたとき、
ケータイの端末情報はUserAgent?のみ。
(キャリヤによりけり。&公式かどうかによりけり)
少なくとも勝手サイトの場合はこれしかない。

UserAgent?を細かく分析して端末を判別するというのは結構面倒くさかったりする。
そしてトドメはvodafone3GC型。
最近vodafoneが売りにしている3G,3Gとはこれのこと。
端末自体も使い勝手が最悪なのだが、
UserAgent?は機種によってバラバラ。
Motorolaは一番ひどい。
(まぁ、vodafoneも反省しているみたいだが。)

そんなこんなに対応して端末を判別してくれるありがたーいパッケージがPEAR::Net_UserAgent_Mobile
http://pear.php.net/package/Net_UserAgent_Mobile
PerlのCPANHTTP-MobileAgentと言うのがあるのだが、
これの移植?みたい。Perlはよくわからんです。

もう一つPEAR::Net_UserAgent_Detectというのがあるが、
これはPCブラウザ用。
(ちょっとできの方が。。。。)

0.23.0現在ベータ版のためインストールには-fを付ける必要がある。

# pear install -f Net_UserAgent_Mobile

ソースコードはこんな感じ

   require_once('Net/UserAgent/Mobile.php');

   // インスタンス生成(ユーザーエージェント解析)
   // 解析するユーザーエージェントを指定することも出来る
   $agent = &Net_UserAgent_Mobile::singleton(); 

   if( !method_exists( $agent , "isDoCoMo" ) ){ // エラー回避(将来的には不要になると思う。)
       switch( true )
       {
       case ($agent->isDoCoMo()):   // DoCoMoかどうか
           echo "DoCoMoだよ。";
           break;
       case ($agent->isVodafone()): // vodafoneかどうか
           echo "vodafoneだよ。";
           break;
       case ($agent->isEZweb()):    // ezwebかどうか
           echo "ezwebだよ。";
           break;
       default:
           echo "たぶんパソコン。";
           break;
       }
   }
   else{
       echo "判別できなかった。ごめんね。";
   }

ケータイ端末判別を自前で作成すると結構な手間なので、
コレを使うとすごい楽。
ただ、このパッケージだけでは実運用のときに足りないので、
拡張したクラスを作ることになると思う。
(対応している画像フォーマットを指定したりとか、QVGAに対応しているかどうかとか)

デメリット

・共通メソッドが十分でないのでインスタンスからメソッド名を確認してから使わないと構文エラーが画面に出る。
・判別し損なったときNonMobileで出力して欲しいのだが、PEAR::raiseErrorがかえってきてエラーが画面に出る
・singletonで呼び出したときstatic変数がインスタンスの配列ではなくインスタンスそのものなので、
  ユーザーエージェントを複数指定できない
・Ver.0.23.0時点でV802Nには対応していない模様。

お名前:


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較