15

iOS デバイスから表示すると、わずかに異なるコンテンツが表示される Web ページがあります。問題のデバイスを検出するために、サイトはユーザー エージェント文字列でiPad;iPod;、またはを探します。iPhone;

これは、すべての iOS デバイスの Safari で完全に機能します。Chrome for iOS でテストすると、iPhone と iPad 1 では動作しますが、iPad 3 では動作しません。Web サイトは次の (予期しない) ユーザー エージェント文字列を取得しています。

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10

これは、クロム メニューの「デスクトップ サイトのリクエスト」オプション (デスクトップ クロムのレンチ アイコン) に関連しているようです。私のサイトでは無効になっており、モバイル サイトではなくデスクトップにロックされているようです。他のサイトでは有効になっており、選択すると別のユーザー エージェント文字列が送信されます。例: http://ifconfig.me/allを試してください

だから私の質問は:

  • Chrome がこのオプションを有効にするかどうかを決定するために使用する基準
  • Chrome がこのサイトをデスクトップ サイトに強制した場合、iOS 固有のコンテンツ (私の場合は、アプリによって処理されるプロトコルを使用したリンク) をレンダリングするにはどうすればよいですか?

これを自分でテストしたい場合は、ユーザー エージェント文字列を単純に反映したページがここにあります。

4

1 に答える 1

14

ブラウザは、デスクトップブラウザを装ったモバイルブラウザとして機能しているかどうかに基づいて、2つのユーザーエージェント文字列の使用を切り替えます。

ユーザーエージェント:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en-gb)
AppleWebKit/534.46.0 (KHTML, like Gecko)
CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3

「デスクトップバージョンのリクエスト」後のユーザーエージェント:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3)
AppleWebKit/534.53.11 (KHTML, like Gecko)
Version/5.1.3 Safari/534.53.10

これは、クライアントが誰であるかについてのWebサーバーへのヒントにすぎません。ブラウザは、受信したWebコンテンツをユーザーエージェントとは独立してレンダリングする必要があります。

于 2012-12-27T17:27:30.960 に答える