iappli用に機種に合わせた描画サイズのjamを動的生成するには
jamを動的生成する
iappli用に機種に合わせた描画サイズのjamを動的生成する方法。
試行錯誤中。
iappliの描画サイズはjamのDrawAreaに設定する。
しかし、ドコモはサーバサイドで機種の画面サイズがとれない。
このため、自分で[機種][画面サイズ]の設定ファイルをメンテする必要があるんだが、これをドコモの公式サイトから自動でとってきて、運用コスト0で何とかしよう、という話。
とりあえず、以下ソースのロジックで運用しています。
- jamファイルにDrawAreaを設定しない
- iappliのダウンロード先は下記のPHPにする
- PHPは、指定されたjamを出力しつつ、最後にDrawAreaを機種に合わせて出力
設定ファイルは、
- ユーザのアクセス毎に設定ファイルの日付をチェック
- 日付が今日でなければ、ドコモのサイトからデータ取得
- 新機種の情報等があれば、メールで管理人にお知らせ
この方法は、iappliのダウンロード先をPHPにしちゃってるんだが、その前はjamファイル自体でPHPを実行できるようにして、jamファイルの最後でDrawAreaを出力するスクリプトをincludeしていた。
その運用が半年以上問題なかったので、ドコモから設定ファイルを取得する部分については、今のところ問題なさそう。といっても、今後のことは分からないが。
追記(2009/3/2)
現在でも、そのまま使えてます。意外と長持ち。
ソースをコピペするのが大変なので、↓にzipして用意しました。
http://onceand.com/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’;




このソースをコピーし設置しましたが、エラーとでています。
個人で設定する箇所はありますか?
設定に関しては、ログファイル関連(LOG_FILEとか)の権限などかな。エラーメッセージないと何とも言えないっす。あと、PHP5対応のサーバかどうか、とか?
ログファイルのspec.datは中身なしで設置ですか?
ファイルがない場合、勝手に新規ファイル作ります。
なので、ディレクトリへの書き込み権限あれば、設置しなくても問題ないです。
設定する箇所は
MAIL_TO = メールアドレス
LOG_FILE = ドコモから取得した設定ファイルのパス
以外にありますか?
ないです。
MAIL_TO = メールアドレス
LOG_FILE = ドコモから取得した設定ファイルのパス
設定を変えてもerrorと出てしまいます
エラーメッセージがないとなんとも言えないっす。
エラーメッセージもなくerrorだけ出ています。
// パラメータがない
if(!isset($_GET[PARAM_APPLI]) || !isset($_GET[PARAM_MODE])) exit('error');
このパラメータに関してるのでしょうか?
あー、分かりました。
すみません、ちょっと説明が足りてなかったです。
>4:アプリのダウンロード用リンクを次のように設置
>http://www.○○.com/jam.php?appli=%5Bアプリ名%5D
↑のアドレスを↓にしてください。
>http://www.○○.com/jam.php?appli=%5Bアプリ名%5D&mode=select
そんな感じで。
errorがなくなってPHP実行ミスらしき(エラーページに白磁)が表示されていますが
ソース内を確認してみましたが
default:
print 'error';
break;
の上か下に
]
が一個多いようです。どれかに//入れますか?
]が多いとかは、こちらでソースみた感じでは問題ないように思います。
エラーログの内容が分かると助かりますが、apacheのエラーログは見れない環境ですか?
レンタルサーバーでPHP稼動ができる環境なのでPHPエラーができると白字ページのみです