Perl-users.jp

Perl でのモバイルウェブ開発。CPAN モジュールつかいまくって簡単に開発がすすめられます。

端末情報を制する(HTTP::MobileAttribute)

HTTP::MobileAttribute をつかうと、HTTP ヘッダから情報をぬきだし、ケータイ端末の情報をあつかいやすくすることができます。

use HTTP::MobileAttribute plugins => [
    qw/ IS /
];

my $ma = HTTP::MobileAttribute->new();
$ma->is_docomo();

絵文字をふくむ文字列をUTF8にまとめつつ相互変換(Encode::JP::Mobile)

Encode::JP::Mobile をつかえば、絵文字の相互変換は容易におこなえます。ユーザがポストした発言などにふくまれる絵文字を、各キャリア用に相互変換することができます。

Encode::JP::Mobile は、Encode.pm 用のエンコーディングのひとつとして実装されているので、いつものように encode/decode するだけでつかえます。Perl におけるただしい decode/encode のつかいかたがわからない場合には perldoc perluniintro などしてください。

encoding 名は、自分で判断する必要はなく、前出の HTTP::MobileAttribute のプラグインである HTTP::MobileAttribute::Plugin::Encoding をつかえば、自動で端末に最適なエンコーディングをえらんでくれます。

use HTTP::MobileAttribute plugins => [
    qw/ Encoding /
];
use Encode::JP::Mobile;
use Encode;

my $ma = HTTP::MobileAttribute->new;

# 適切に decode してあげましょう
my $decoded_name = decode($ma->encoding, $request->param('name'));

# 出力するまえに encode します
my $html = ...; # HTML をなんらかの手段で生成しましょう
my $encoded_html = encode($ma->encoding, $html);

ケータイのメールアドレスかどうかを判断(Mail::Address::MobileJp)

あるメールアドレスが、ケータイのものかどうかを判断できます。このモジュールはよくメンテナンスされているため、自前で実装するよりもこちらをつかった方がよいとおもいます。

use Mail::Address::MobileJp;
is_mobile_jp('example@ezweb.ne.jp'); # => true
is_mobile_jp('example@gmail.com');   # => false

テンプレートファイルにある絵文字を各キャリヤ用に変換(HTML::Entities::ConvertPictogramMobileJp)

3キャリヤ対応のモバイルサイトを構築する場合において、すべてのキャリヤでちゃんと絵文字を表示させたいが、テンプレートをきりかえたりするのは面倒という場合にはこのモジュールです。

ドコモの絵文字をテンプレートに記述して、それを元に各キャリアの絵文字に変換します。(ドコモの絵文字をつかうのは、ドコモの絵文字が一番数がすくないからです)

use HTML::Entities::ConvertPictogramMobileJp;
use HTTP::MobileAttribute;

convert_pictogram_entities(
    mobile_agent => HTTP::MobileAttribute->new,
    html  => "&#xE001",
);

目次へ

Last modified: