Android のユーザーエージェントの検出について | Google ウェブマスター向け公式ブログ

このページは、外部サイト Google ウェブマスター向け公式ブログ の情報をRSSフィード経由で取得して表示しているため、記事の一部分しか表示されていなかったり、画像などが正しく表示されなかったり、オリジナル記事が意図したデザインと異なっていたりする場合があります。
完全な状態のオリジナル記事は 「Android のユーザーエージェントの検出について」 からご覧ください。
今日は、最近多くなっているユーザーエージェント検出時の問題を回避する方法についてご紹介します。Android のユーザーエージェントを検出する時は、是非「android」だけでなく 「mobile」という文字も検出してください。

これまでは、「ユーザーエージェントから文字列『android』を検出したら、そのユーザーをモバイル バージョンのサイトにリダイレクトする。」このようなリダイレクトが当たり前のように行われていましたが、Android タブレットの登場とともに文字列「Android」だけでは不十分となりました。携帯端末のユーザーエージェントと同様に、Android タブレットのユーザーエージェントにも文字列「android」が含まれているためです。しかし、タブレット ユーザーには大きなデスクトップ バージョンのサイトを表示させたいのではないでしょうか。サイトが文字列「android」だけでユーザーを自動的にリダイレクトしている場合は、Android タブレットのユーザーがモバイル サイトにリダイレクトされてしまいます。

そこで、モバイル サイトを提供している場合の解決策として Android エンジニアが推奨するのは、ユーザーエージェントに「android」だけでなく「mobile」が含まれているかどうかを検出する(英語) 方法です。いくつか例を見てみましょう。

次のようなユーザーエージェントの場合:
Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13
文字列「mobile」は含まれていないので、このユーザーにはデスクトップ バージョン(または Android の大型タッチスクリーン端末向けにカスタマイズされたバージョン)を表示します。このユーザーエージェントを見ると、ユーザーが大画面端末 XOOM タブレットを使用していることがわかります。

一方、次のようなユーザーエージェントの場合:
Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
「mobile」と「android」が含まれているので、このユーザーエージェントを見ると通常のスマートフォンであることが分かります。この Nexus One ユーザーにはモバイル サイトを表示すべきしょう。

次の図に示すように、Android のユーザーエージェントにはいくつかの共通点があります:

もちろん、Android 固有の機能(たとえばタッチスクリーンの最適化)を実装するために、引き続きユーザーエージェント内の「android」を検出する必要はあるでしょう。しかし、今回お伝えしたいのは、ユーザーエージェントの内容に応じてモバイル サイトにリダイレクトするかどうかを判断するのであれば、文字列「android」だけではなく、「mobile」と「android」の両方を検出してほしいということです。こうすることで、モバイル ユーザーとタブレット ユーザーの両方に適切なサイトを提供できます。

ご不明な点がある場合は、ぜひ デベロッパー フォーラム の Android コミュニティをご利用ください。

Written by Maile Ohye, Developer Programs Tech Lead
Original version: Mo’ better to also detect “mobile” user-agent
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

アンカーテキスト
HTMLでページからページへジャンプする「リンク」に使われるテキスト(文字列 ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]