現行機種についてのみ取り上げてみた。
FOMAとMOVA
C型と3GC型
WINと非WIN
端末固有の番号を取得できるがキャリアによって取得方法がまったく違うので注意。COOKIEが使えない状況ではユーザーのトレースに利用できる唯一の手段かと。
HTTP_X_UP_SUBNO という独自HTTPヘッダーについてくる。公式サイトだろうと勝手サイトだろうとユーザ側で送信OFFにしていない限りは取得できる。
$id = $_SERVER['HTTP_X_UP_SUBNO'];
SoftBankはいくつかの文字コードを扱えるが、他のキャリアとの統一でShift_JISにしておくのがよろしい。
auがWEP2.0になってから、HDMLはほぼ消えつつあるので、基本とするHTMLは3キャリアほぼ同じものでよい。キャリア独自のタグなどは振り分ける必要がある。
今やたいていの機種がSSL対応になっているのだが、SoftBank(Vodafone3G)とauは困ったことにちゃんとした証明書でないとそれ以上進めないという状況になっている。いちいちテスト環境のために数万円だして認証CAの証明書取れないから困ったもんだ。auのサイトには「Webサーバの証明書が不正 (認証局が不正、期限切れ等) であった場合や、テスト用の証明書であった場合には、エラーメッセージが表示され通信を行うことができません。」とある。その点DOCOMOは警告ダイアログが出るだけで、先へ進める。開発者にとっては選択の余地を残しておいてくれたほうがありがたいのだが・・・・。昔のVodafone(いわゆるP型)はそのままいけた。
<img localsrc="絵文字番号" />

Vodafone 3G 携帯では Shift_JIS ページを表示しているとフォームから絵文字が送信できないらしい。確かに絵文字のコードが削られている。というわけでUTF-8を使わないといけないわけだめんどくさ!
最近の機種限定。すべてが出揃っているJPGを使うのがよいと思われる。
キャリア | JPEG | GIF | PNG |
Docomo | ○ | ○ | × |
AU | ○ | ○ | × |
Softbank | ○ | ○ | × |
auが公式ページに解説あって楽
http://www.au.kddi.com/ezfactory/tec/spec/eznavi.html
携帯の見た目を確認するのにいいが、実機とは似て非なるものという認識でいないとあとでいたいしっぺ返しを食らう。早めに実機で確認したほうがいい(経験談)
iモードHTMLシミュレータIIというのがある。HTTPリクエストログもでてくるので結構便利。
OpenWaveSDK6.2。突然落ちたり、挙動不審に陥ることが多い。役立つ機能もあまりないのでauは実機で確認です。
ウェブコンテンツヴューア。各世代別にHTMLエラーチェックできたり3キャリアの中で一番いいのだが、時たま落ちる!
Keep-Aliveを有効にすることで回避可能
xhtmlの時はContentTypeを適切に設定しないとダメ
<?php header("Content-type: application/xhtml+xml;charset=Shift_JIS");
au携帯はHTTPステータスコード404,500を受け取ると端末独自のポップアップ画面を表示する。IEのエラー簡易表示のように迷惑な機能だ。回避するにはステータスコードを200にして、エラーページを表示するしかない。
mailtoタグの文字数が多すぎるとこのエラーが出る。全角文字100文字以上が危ないようだが、また境界値は判明していない。
キャリアの公式ページはグーグルにヒットすることが少ないが、一読の価値あり
http://www.nttdocomo.co.jp/service/imode/make/
http://www.au.kddi.com/ezfactory/tec/index.html
http://developers.softbankmobile.co.jp/dp/