#setlinebreak(on)
* PEAR::Net_UserAgent_Mobile 3G対応携帯判別(ケータイ判別) [#da1710ac]

[[DoCoMoマップ利用 PEAR::Net_UserAgent_Mobile_DoCoMoDisplayMap>PEAR/Net_UserAgent_Mobile/DoCoMoDisplayMap]]

#htmlinsert(googleAdsense.html)
** 概要 [#xe0ed95f]
#ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,around,PHP::PEAR)

携帯端末判別の決定版。
ケータイコンテンツ開発には必須になるやも。

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

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

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

そんなこんなに対応してケータイを判別してくれるありがたーいパッケージが[[PEAR::Net_UserAgent_Mobile:http://pear.php.net/package/Net_UserAgent_Mobile]]
http://pear.php.net/package/Net_UserAgent_Mobile
Perlの[[CPAN:http://search.cpan.org/]]に[[HTTP-MobileAgent>http://search.cpan.org/search?mode=module&query=HTTP-MobileAgent]]と言うのがあるのだが、
これの移植?みたい。Perlはよくわからんです。

もう一つ[[PEAR::Net_UserAgent_Detect:http://pear.php.net/package/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パターンの実装が少し変なような。。。。
 ・Ver.0.23.0時点でV802Nには対応していない模様。 
    => 0.24.0で改善されてる模様



#comment


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