携帯判定その他覚え書き

携帯端末CIDR

http://www.nttdocomo.co.jp/service/imode/make/content/ip/index.html
http://www.au.kddi.com/ezfactory/tec/spec/ezsava_ip.html
http://developers.softbankmobile.co.jp/dp/tech_svc/web/ip.php

Catalyst::Plugin::MobileAgentでキャリア判定してからCIDRチェック
チェックは割と時間かかる?とおもったけど、CatalystデバッグのTimeみてもたいしたこと無いのでbegin : Privateに仕込めそう

追記
http://search.cpan.org/~tokuhirom/Net-CIDR-MobileJP/
これは便利すな

端末IDとユーザID

信頼性は ユーザID > 端末ID?
http://d.hatena.ne.jp/y-kawaz/20070224

固有携帯ID、ユーザIDの取得
DOCOMO GET uid=NULLGWDOCOMO
AU $ENV{'x-up-subno'}
SoftBank $ENV{'x-jphone-uid'}

ユーザIDと、ユーザエージェント、DBの携帯認証用のキーにいれて、ログイン時にチェック
OKだったらセッションID発行して以降はそれを使う。
何か操作する度にセッションIDの寿命を延ばす。
ログアウト、または操作しないセッションIDは30分程度で消す。$c->session_expires $resetで延長


PCの人は普通にユーザID、パスワード入れてログインでも良いんだろうけど、パスワードとかメールアドレス入力するのって携帯だと(特に俺は)めんどくさい。 やっぱユーザIDか携帯固有情報で一発OKなのが楽。

Catalystで携帯端末ID取得
MobileUserIDで固有番号一発げっと
http://search.cpan.org/~miyazaki/HTTP-MobileUserID-0.01/lib/HTTP/MobileUserID/Nihongo.pod

いつもの

Session
Session::Store::FastMmap
Session::State::Cookie

このコンボで

Catalyst

必須モジュール
※FillInFormは使うべきか使わないべきか

文字コード
Catalsyt::Plugin::Charsets::Japanese
Catalsyt::Plugin::Charsets::Japanese::Mobile http://d.hatena.ne.jp/fbis/20070419/1176973216
Catalyst::Plugin::Unicode::Encoding http://catalyst.g.hatena.ne.jp/yosty/

のどれかを使うことになるのかな

Catalyst::Plugin::FormValidator::Simple

options => { charset => 'Shift_JIS'}

テンプレート UTF-8 / 出力 Shift_JIS

use Catalyst::Plugin::Charsets::Japanese::Mobile

__PACKAGE__->config)
charsets => {
in => 'UTF-8',
out => 'Shift_JIS'
}

文字コード系は基本は入力UTF-8,出力はShift_JISだとおもうので、これでおk
入力された文字で全角系はControllerの中で変換しておくと吉
うちのHTMLオーサリングはGoliveだけど、Goliveだと

<meta http-equiv="content-type" content="text/html;charset=utf-8">

utf-8とかをみて文字コード読み込み直したりめんどうなので

<meta http-equiv="content-type" content="text/html;charset=[% output_charsets %]">

みたいにして動的に変えてる

FillInFormは使うべきか使わないべきか
フォームの値を埋めてくれるときに、モジュールの記述位置とかいろいろ変えてもうまくいかない場合もある。

ユーザーエージェント判定

Catalyst::Plugin::MobileAgent
MobileAgent
http://search.cpan.org/~kurihara/HTTP-MobileAgent-0.26/lib/HTTP/MobileAgent.pm

ケータイ用HTMLタグ

アクセスキーは必須
istyle

これないと非常にめんどい必須

  • istyle=1 (全角かな/全角文字)
  • istyle=2 (全角カナ/全角文字)
  • istyle=3 (英字/半角文字 (小文字) )
  • istyle=4 (数字/半角文字 (数字) )

リダイレクト

ドコモで$c->redirect('/');みたいにするとだめ。
http://〜からの絶対参照でリダイレクトしないと無効なデータを受信しました(302)となる。
$c->redirect($c->uri_for('/'));とか 'http://example.com/hoge'とか

画像サイズ、フォーマットは?

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1330178
240×320か、120×160、全部やるなら96×72。おそらく最近のに合わせた方がいいかな。
http://www.nttdocomo.co.jp/service/imode/make/content/spec/frame_size/
http://www.au.kddi.com/ezfactory/tec/spec/gif.html
http://developers.softbankmobile.co.jp/dp/tech_svc/info/

出来ればあらかじめ画像たくさんつくっておいて、
mobileagentで機種ごとに画像ファイル名変えればいいんだろうけど。
めんどいなー

自分はMova持ってるので、ケーブルとPC直結して携帯を操作できます。 これが便利。 携帯操作系なソフトはVectorとかに結構あるのでそれを使うと幸せになれます。

CatalystcaptchaはCatalystSessionみてValidateとかするので携帯固有IDとかでセッションしてると躓く。
Catalystセッションはセッションでちゃんとやりとりするか、携帯IDセッションでOKだったら、セッションに値を入れ直すなりしないとあかんですね。

続く。