ノリブログ?

携帯の機種ごとのディスプレイサイズをUserAgentから取得

カテゴリー:Web

携帯電話の画面サイズを取得する処理を作る必要がでたので、3つのライブラリを試してみました。
その結果をまとめておきたいと思います。

HTTP::MobileAgentモジュール

  HTTP::MobileAgent  

CPANで配布されている、携帯機種の情報を取得するためのモジュール

ライセンス

Perl 自体と同じ条件の元,再配布及び/又は修正可能

導入方法

CPANからインストール

      perl -MCPAN -e shell
      cpan> install HTTP::MobileAgent

画面サイズ取得例


       #! /usr/bin/perl
       print "Content-type:text/html ";
       use HTTP::MobileAgent;
       $agent = HTTP::MobileAgent->new($ENV{'HTTP_USER_AGENT'});
       my $display = $agent->display;
       print "width:  ",$display->width,"<br>";
       print "height: ",$display->height,"<br>";

実際の結果


DoCoMo SH700iS(240×320ドット)

  • widthは液晶のサイズと一致しているがheightが320と252で全く違う値になっていた。
  • これはSH700iSの画面サイズは240×320ドットであるが、ブラウザ表示時の画面領域が240×252dotであるため
  • 参考:iモードブラウザの画面領域

SoftBank 904SH(640×480ドット)

  • width,heightどちらも表示されず

 

phone.pl

phone.pl 携帯電話キャリア自動判別ライブラリ 

アクセスしてきているブラウザ情報から、携帯電話キャリアや細かな機種情報を自動判別するためのライブラリ。phone.plを設置して呼び出すだけで使用可能。

ライセンス

表記がなかったため問い合わせたところ「商用でもGPLでも、ご自由にお使いいただいて構いません。」とのことでした。

導入方法

phone.plをダウンロード

画面サイズ取得例


      #! /usr/bin/perl
      print "Content-type:text/html ";
      require "phone.pl";
      my $phone = &phone_info();
      print "width:  ",$phone->{width},"<br>";
      print "height:  ",$phone->{height};

実際の結果


DoCoMo SH700iS(240×320ドット)

  • widthは240,heightは表示されず

SoftBank 904SH(640×480ドット)

  • width:640,height:480

 

PEAR:Net_UserAgent_Mobile

 Package Information: Net_UserAgent_Mobile

ライセンス

PHP licence

導入方法
  • 現在βのため、-fオプションをつけてpearコマンドでインストールする必要がある

            pear install -f Net_UserAgent_Mobile

  • サーバーに入っているpearのバージョンが 1.4.0 未満のためのエラーだと思われる。
  • 参考:http://pear.plus-server.net/faq.html 

 

 

 

 

 

 

 

 

 

関連記事

Track Back URL

name
E-mail(省略可)
URL(省略可)
コメント