フラッシュ対応携帯電話判別スクリプト。
- 平成18年12月16日 公開
- 平成18年12月17日 更新
端末を判別して、
- フラッシュ対応携帯電話にはフラッシュを
- その他の端末には代替コンテンツ(多くの場合はHTML文書)を
それぞれ配信するスクリプトです。
- しらぎくのウェブサイト作成入門は携帯電話向けコンテンツの書き方内の携帯電話向けコンテンツでフラッシュを使うにはでの解説もご参照下さい。
本スクリプトについて。
最近では携帯電話でもフラッシュプレーヤを実装していて、コンテンツにフラッシュを入れられるようになりました。
特にフラッシュを独立したコンテンツとして表示するインタラクティヴ表示モードでは、細かな操作が可能になり、ちょっとしたアプリ代わりにもなります。
しかしながら、フラッシュに対応していない端末もまだ多々あります。
- 例えば東芝の現行ソフトバンク3G機種には、今もフラッシュ非対応の端末があります。
- ドコモでも、フォーマらくらくフォンなど一部の特殊端末では、現行機種でもフラッシュ非対応です。
そこで、インタラクティヴなフラッシュをコンテンツとして利用する場合、まずフラッシュに対応しているかどうかを判断し、
- フラッシュ対応なら指定のフラッシュを
- そうでないのなら、指定の代替コンテンツを
それぞれ配信出来るようにするのが現実的な対応と言えます。
このスクリプトは、その目的で作られております。
- 当スクリプトの改造・再配布は自由とします。制作者は当スクリプトに対する著作権を主張しません。
- スクリプトの改造・ご利用は自己責任でお願いします。改造の有無を問わず、当スクリプトの運用の結果に関して制作者は一切関知致しません。
原理。(平成18年12月17日)
このスクリプトは以下のようなケースで利用されます。
- インタラクティヴなフラッシュをコンテンツとしてリンクしたい。しかし、フラッシュに対応していない端末にはフラッシュの代わりにHTMLで作成した代替コンテンツを配信してやらないと拙い。
この目的のため、以下の流れに沿ってコンテンツの振分けを行います。
- 先ず、ドコモ以外の携帯電話では、HTTPでの要求時にACCEPTフィールドに対応可能なMIMEタイプ一覧が送付されます。
フラッシュに対応している端末であれば、この中に「application/x-shockwave-flash」が含まれています。
- 実のところ、ACCEPTフィールドもいい加減な場合があるので、万が一ですが対応していないのにフラッシュ対応を偽ってくる可能性が無いとも言えません。ただ、制作者が調べてみたところ、フラッシュに関してはそこまでいい加減な実装をしている端末は無いようです。
- 一方ドコモでは、ACCEPTフィールドを全く送ってこないため、ユーザエージェント文字列で機種判断するしかありません。
具体的には、以下のようになります。
尚、いずれの場合にもユーザエージェント文字列に/TC/(ムーバ)または
;TC;(フォーマ)が含まれている場合は画像非表示の設定となり、この設定上ではフラッシュも非表示になります。このため、この設定の場合は、機種判別するまでも無く非対応と見なします。(平成18年12月17日) - この結果、
- フラッシュ対応端末であれば指定されたURIのフラッシュを、
- フラッシュ非対応端末であれば、指定された代替コンテンツを
それぞれ配信するようにします。
- 尚、PCに関してはインターネットエクスプローラとオペラはフラッシュ対応として処理されますが、もじら系ブラウザではフラッシュ非対応と見なされます。
使い方。
スクリプトの設置。
- 当該スクリプトを取得して、CGIとして分かり易いファイル名にリネームします(例えば「f.cgi」など)。
- 続いて、一行目のパスをサーヴァに合わせて修正します。
- サーヴァで指定された適切なディレクトリ内の適切なファイル名にしてアスキィモード(テキストモード)で設置します。
- パーミッションは「700」推奨。動かない場合に限り「701」「705」「711」「715」「751」「755」の順で試して下さい。
- スクリプトは一応シフトJISで書いていますが、注釈以外には日本語文字は入っていませんので、日本語文字部分を削除すれば、文字コードを意識する必要はありません。