読者です 読者をやめる 読者になる 読者になる

iappli用に機種に合わせた描画サイズのjamを動的生成するには

自作アプリ


iappli用に機種に合わせた描画サイズのjamを動的生成する方法。
試行錯誤中。

iappliの描画サイズはjamのDrawAreaに設定する。
しかし、ドコモはサーバサイドで機種の画面サイズがとれない。
このため、自分で[機種][画面サイズ]の設定ファイルをメンテする必要があるんだが、これをドコモの公式サイトから自動でとってきて、運用コスト0で何とかしよう、という話。

とりあえず、以下ソースのロジックで運用しています。

  1. jamファイルにDrawAreaを設定しない
  2. iappliのダウンロード先は下記のPHPにする
  3. PHPは、指定されたjamを出力しつつ、最後にDrawAreaを機種に合わせて出力

設定ファイルは、

  • ユーザのアクセス毎に設定ファイルの日付をチェック
  • 日付が今日でなければ、ドコモのサイトからデータ取得
  • 新機種の情報等があれば、メールで管理人にお知らせ


この方法は、iappliのダウンロード先をPHPにしちゃってるんだが、その前はjamファイル自体でPHPを実行できるようにして、jamファイルの最後でDrawAreaを出力するスクリプトをincludeしていた。
その運用が半年以上問題なかったので、ドコモから設定ファイルを取得する部分については、今のところ問題なさそう。といっても、今後のことは分からないが。

追記(2009/3/2)

現在でも、そのまま使えてます。意外と長持ち。
ソースをコピペするのが大変なので、↓にzipして用意しました。

http://www.bousaid.dyndns.org/public/share/jam.zip

追記(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