2003年12月10日 (水)
Sledge::MobileGate
Sledge::MobileGateという3キャリア対応(もどき)の仕組みをつくってみました。各キャリアから一般に公開されている情報だけで作るのが目的です。
Hookされる順番を気にしたくなかったので、これは、PluginではなくSledge::Pages::Base を継承していくつか機能を追加しています。こんな風に、Pagesクラスに定義します。
package Project::Pages;
use Sledge::MobileGate::Pages::Compat;
use Sledge::MobileGate::Charset;
sub create_charset {
my $self = shift;
return Sledge::MobileGate::Charset->new($self);
}
ちょと絵文字の処理がごちゃごちゃしていて、気にくわないけどとりあえず晒します。ご意見パッチ大歓迎でッス。
ちょっと試したかぎりでは、基本的に、テンプレートは1つで3キャリアで表示できました。絵文字の処理だけですね。ezのダウンロードなど特殊なもののみ、それようのテンプレート作って、自動的にテンプレートを変更しています。
機能としては以下のような感じ。
diapatch の追加
アクセス端末ごとに、(i|ez|j)_dipatch_page が存在した場合(post_)dispatch_PAGE の前に実行します。
絵文字の処理入力された絵文字は自動的に、i-mode の場合 *****;の形式に変換します。vodafone の絵文字は i-mode に類する絵文字があった場合は、対応する*****; という形に変換します。無かった場合はv[**]; という形式に変換します。
v[**]; という形式は、Sledge::MobileGate 独自の形式です。
FillInFormされる直前、入力されたデータを上記の形式からバイナリコードに戻します。
HTMLとして出力前に上記の形式から、アクセスしている、端末のエージェント判断して、バイナリコードに戻します。その、エージェントで対応する絵文字が存在しない場合は、削除されます。
テンプレート以下の優先順位で、各キャリアごとのテンプレートを検索し そのファイルがあれば、それを優先して使用。
- ファイルの末尾($TMPL_PATH/$DIR/foo.html.ez)
- ディレクトリ($TMPL_PATH/ez/$DIR/foo.html)
- 通常($TMPL_PATH/$DIR/foo.html)
mobile メソッドの追加
mobile というメソッドを追加します。
idアクセス端末の端末固有ID(ez, vodafoneのみ)を返します。
$self->mobile->id;
agent
HTTP::MobileAgent manpage のオブジェクトを返します。
if ($self->mobile->agent->is_ezweb) {
.....
}
career
アクセス端末の キャリア(i, ez, jという文字列)返します。
$self->mobile->career;
download
各端末にあわせたダウンロードの処理を行います。 Content-Type は$self->r->uri の末尾が .mld .mmf .pmd .gif .jpg .qcp .pngの場合は自動的に正しい Content-Type を出力します。それ以外の拡張子の場合は "application/x-up-download"になります。
$self->mobile->download($content_data, [MIME_TYPE]);
posted by takefumi
|
この日記へリンク
|
コメント(0)
|
トラックバック(0)
Sledge::MobileGate - TODO
絵文字の対応表だれかつくって〜。
vodafon の 絵文字 vodafon の絵文字の対応表を完成させる。 patch 歓迎。
- http://www.nttdocomo.co.jp/p_s/imode/tag/emoji/list.html#list1
- http://www.dp.j-phone.com/dp/tool_dl/web/picword_top.php
ezweb の 絵文字 ezweb の絵文字の対応表も作成する。 patch 歓迎。
- http://www.nttdocomo.co.jp/p_s/imode/tag/emoji/list.html#list1
- http://www.au.kddi.com/ezfactory/tec/spec/3.html
基本的にezゲートウエイがやってくれるが、メールや拡張絵文字に対応できるようになる。
ezweb wap1, wap2の振り分けテンプレート、diapatch の振り分けに wap1 wap2 とかを 追加。
パケレスフィルター全角を半角にとかのパケレスフィルターフィルター機能。
vodafone フィルター vodafone のinputmode(istyle), directkey(accesskey)対応。
IP制限 Authorizer IP制限のAuthorizer
- http://www.nttdocomo.co.jp/mc-user/i/ip.html#ip
- http://www.au.kddi.com/ezfactory/tec/spec/ezsava_ip.html
- http://www.dp.j-phone.com/dp/tech_svc/web/ip.php
posted by takefumi
|
この日記へリンク
|
コメント(0)
|
トラックバック(0)

