携帯Flash対応端末と非対応端末を振り分ける

| コメント(0) | トラックバック(0)

こんにちは、バズー株式会社、開発チームリーダーの清水です。

最近の携帯は Flash に対応しています。Flash Lite 1.1 なら90%以上対応していると思ってよいと思います。ただし、場合によっては、残りの10%の携帯にも対応する必要があります。そこで、プログラムによって携帯Flash対応端末と非対応端末を振り分ける必要がでてきます。幸いにもいまでは携帯機種情報が無料で取得できるようになっているので、以下のサイトなどから端末IDの一覧を取得します。

http://valueengine.jp/index.html

Flash に対応している端末ID一覧を作ると新しい機種が増えるたびに対応しなければいけないので、逆に Flash に対応していない端末ID一覧を作ります(これなら増えることもありません)。

下記のプログラムを index.php として、以下の4つのファイルを用意します。

・index.php (下記のプログラム)
・mobile/index.swf.dat (携帯用Flash)
・mobile/index.html.dat (携帯用静的ページ)
・index.html.dat (PC用静的ページ)

<?php
// Flash非対応端末ID一覧
$no_flash = array(
    '1' => ARRAY(
        '833I',
        'D209I',
        'D2101V',
        /* 途中省略 */
        'SO506iC',
        'SO506iS',
        'T2101V'
    ),
    '2' => ARRAY(
        'CA11',
        'CA12',
        'CA13',
        /* 途中省略 */
        'TST7',
        'TST8',
        'TST9'
    ),
    '3' => ARRAY(
        '702MO',
        '702NK',
        '702SMO',
        /* 途中省略 */
        'V902T',
        'V903T',
        'V904T'
    )
);
$ua = $_SERVER['HTTP_USER_AGENT'];
$career = 0; // PC
if (preg_match("/^DoCoMo\/1\.0/", $ua)) {
    $ua_array = explode("/", $ua);
    $career = 1;
    $device = $ua_array[2];
}
elseif (preg_match("/^J\-PHONE|^Vodafone|^SoftBank/", $ua)) {
    $ua_array = explode("/", $ua);
    $career = 3;
    $device = $ua_array[2];
}
elseif (isset($_SERVER['HTTP_X_JPHONE_MSNAME'])) {
    $career = 3;
    $device = $_SERVER['HTTP_X_JPHONE_MSNAME'];
}
elseif (preg_match("/UP\.Browser/", $ua)) {
    $career = 2;
    $device = preg_replace("/^[^\-]+\-([^\ ]+)\ .+$/","$1", $ua);
}
elseif (preg_match("/^DoCoMo\/2\.0/", $ua)) {
    $ua_array = explode("/", $ua);
    $career = 1;
    $device = preg_replace("/^2\.0 ([0-9A-Za-z\+]+)\(.+$/","$1", $ua_array[1]);
}
if ($career) {
    if (!in_array(strtoupper($device), $no_flash[$career])) {
        // 携帯Flash対応端末
        header("Content-Type: application/x-shockwave-flash");
        echo file_get_contents('mobile/index.swf.dat');
    } else {
        // 携帯Flash非対応端末
        require_once('mobile/index.html.dat');
    }
} else {
    // PC
    require_once('index.html.dat');
}

PCのところは、携帯用静的ページを返すなり、サービス紹介ページにするなり工夫するとよいと思います。

これで携帯Flash対応端末からアクセスするとFlashが、非対応端末からアクセスすると静的ページが表示されます。

トラックバック(0)

トラックバックURL: http://tech.buzoo.jp/mt4/mt-tb.cgi/101

コメントする

就活アワード2012 受賞

本格SF宇宙戦争シュミレーションゲーム 宇宙神話モバイルプラネット

格闘系美少女学園RPG 闘女伝説モバイル学園

携帯サイト作成のバズー株式会社

名経営者を志す 熱血社長ブログ

感動を与える仕事をする!COOのブログ

攻めのド営業 営業本部長ブログ

事業家を目指す新卒者ブログ

mixiアプリ企画・開発

バズービル写真

セレブスタイル

芝大門スタジオ

キッズスタイル

プライバシーマーク

フィードメーター - 携帯サイト開発を極める!開発チームリーダーのブロ..

あわせて読みたいブログパーツ

カテゴリ

プロフィール

バズー株式会社
執行役員 CTO
海外事業部責任者
清水 樹 (Jun Shimizu)
慶應義塾大学理工学部卒業
日立ソフトウェアエンジニアリング出身
インドネシアのジャカルタでオフショア開発拠点設置中。