iappli用に機種に合わせた描画サイズのjamを動的生成する方法。
試行錯誤中。
iappliの描画サイズはjamのDrawAreaに設定する。
しかし、ドコモはサーバサイドで機種の画面サイズがとれない。
このため、自分で[機種][画面サイズ]の設定ファイルをメンテする必要があるんだが、これをドコモの公式サイトから自動でとってきて、運用コスト0で何とかしよう、という話。
とりあえず、以下ソースのロジックで運用しています。
- jamファイルにDrawAreaを設定しない
- iappliのダウンロード先は下記のPHPにする
- PHPは、指定されたjamを出力しつつ、最後にDrawAreaを機種に合わせて出力
設定ファイルは、
- ユーザのアクセス毎に設定ファイルの日付をチェック
- 日付が今日でなければ、ドコモのサイトからデータ取得
- 新機種の情報等があれば、メールで管理人にお知らせ
この方法は、iappliのダウンロード先をPHPにしちゃってるんだが、その前はjamファイル自体でPHPを実行できるようにして、jamファイルの最後でDrawAreaを出力するスクリプトをincludeしていた。
その運用が半年以上問題なかったので、ドコモから設定ファイルを取得する部分については、今のところ問題なさそう。といっても、今後のことは分からないが。
追記(2009/3/2)
現在でも、そのまま使えてます。意外と長持ち。
ソースをコピペするのが大変なので、↓にzipして用意しました。
目次
Outline
追記(2009/6/2)
iモードブラウザ2.0がコケて、UAが変更になった件にとりあえず対応。
(P07A・N06AのUAが、P07A3・N06A3になった)
>if($name == ‘P07A3’) $name = ‘P07A’;
>if($name == ‘N06A3’) $name = ‘N06A’;
http://www.nttdocomo.co.jp/service/imode/make/content/spec/useragent/index.html