Kawanet Blog II

アクセスカウンタ

zoom RSS [mobile] iモードで background-color で背景色を指定できる判別条件

<<   作成日時 : 2007/12/16 05:25   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 16 / トラックバック 1 / コメント 0

ドコモ i モード向けの CGI コンテンツを作っているとき、ほとんどの FOMA 機種では、
PC と同じようにスタイルシートで div の背景色を指定できるようになっています。

<div style="color: #FFFFFF; background-color: #FF0000;">

ただし、通常の HTML として書くと iモード端末側でスタイルシートが
無視されてしまうので、XHTML として書く必要があるそうです。
iモード対応 XHTML 1.1 で初めて background-color: が利用可能になる。
ドコモの iモード対応XHTMLの考え方 のページによると、

Content-Type: application/xhtml+xml
Content-Length: ***

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/1.1) 1.0//EN" "i-xhtml_4ja_10.dtd">
<html>

のように出力する必要がある仕様になっています。

ただし、このうち 必須なのは Content-Type: ヘッダのみ で、実際には
それ以外のヘッダはなくても問題なく、ちゃんと背景色付きで表示してくれるようです!
また、整形式の XML でなく、タグの閉じ忘れがあっても OK な模様!これは楽だ!
・・・しかし、そう単純ではなくて、問題点もあります。

・古い mova 端末(今でも使っている人を見かけるのは premini-II くらい?)など
 i-XHTML 非対応機種では、ソースの XML 宣言や DOCTYPE 行が邪魔になる。
・FOMA 端末がタグの閉じ忘れを無視してそれなりに表示してくれていても、
 携帯他キャリアの端末が同じように無視してくれるかは不透明。
(PC では、Firefox は Content-Type: application/xhtml+xml のときは整形式必須)

解決案としては、自動判別で Content-Type: を変えること。

1.ドコモの i-XHTML 1.1 以上対応機種のみ Content-Type: application/xhtml+xml とする
2.それ以外の機種では従来通り Content-Type: text/html とする

background-color を利用できる i-XHTML 1.1 以降かどうかは、
ユーザエージェントを使って判別が可能な模様。
iモード対応XHTML 1.0
【書式】DoCoMo/2.0 機種名(キャッシュ;状態コード;個体識別情報)
iモード対応XHTML 1.1
【書式】DoCoMo/2.0 機種名(キャッシュ;状態コード;ブラウザ表示可能バイト数;個体識別情報)
iモード対応XHTML 2.0〜2.2
【書式】iモード対応XHTML2.0と同様

つまり、HTTP_USER_AGENT が『DoCoMo/2.0』で始まって(=FOMA)かつ、
『W24H12』の形式で指定される「ブラウザ表示可能バイト数」の項目があれば、
その機種は i-XHTML 1.1以降(=background-color利用可能)ということが分かります。

Perl 版のサンプルコードは、以下の通り。
if ( $ENV{HTTP_USER_AGENT} =~ m#^DoCoMo/2.0.*\([^\)]+;W\d+H\d+# ) {
    print "Content-Type: application/xhtml+xml\n";
} else {
    print "Content-Type: text/html\n";
}

コンテンツ自体は、どちらも XHTML でなくて HTML として記述できる。
旧機種では、style="" 属性は無視されます(背景色が変わらない)。
FONT タグを使わずに、スタイルシートだけで書いておけば、
旧機種でちょっと寂しい色になるが、操作に困ることはなさそう。
手元にあった、FOMA 4機種で動作確認できました。(ちょっと古い機種)

    SH902i i-HTML 6.0 i-XHTML 2.0
    SH900i i-HTML 5.0 i-XHTML 1.1
    L602i i-HTML 5.0 i-XHTML 1.1 (SIMPURE L2)
    N600i i-HTML 5.0 i-XHTML 1.1 (SIMPURE N)

とはいえ、iモード対応機種 対応コンテンツ・機能一覧 (PDF) によると、
最新機種 905i シリーズでは i-HTML 7.1 i-XHTML 2.2 まで進化しているそうなので、
XML 整形式に厳密になっていないかなど、これらの機種でも検証しておきたいところ。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 16
なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)
驚いた 驚いた
ナイス ナイス
かわいい かわいい
面白い
ガッツ(がんばれ!)

トラックバック(1件)

タイトル (本文) ブログ名/日時
PHP版 i-XHTML1.1以上対応機種判別
[mobile] iモードで background-color で背景色を指定で... ...続きを見る
Nix::WebLab
2008/09/11 14:16

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
[mobile] iモードで background-color で背景色を指定できる判別条件 Kawanet Blog II/BIGLOBEウェブリブログ
文字サイズ:       閉じる