携帯の機種ごとのディスプレイサイズをUserAgentから取得
カテゴリー:Web
携帯電話の画面サイズを取得する処理を作る必要がでたので、3つのライブラリを試してみました。
その結果をまとめておきたいと思います。
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を設置して呼び出すだけで使用可能。
ライセンス
表記がなかったため問い合わせたところ「商用でも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