携帯判定その他覚え書き
携帯端末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'}
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とかに結構あるのでそれを使うと幸せになれます。
CatalystのcaptchaはCatalystSessionみてValidateとかするので携帯固有IDとかでセッションしてると躓く。
Catalystセッションはセッションでちゃんとやりとりするか、携帯IDセッションでOKだったら、セッションに値を入れ直すなりしないとあかんですね。
続く。